Skip to content

Latest commit

 

History

History
156 lines (111 loc) · 9 KB

README_EN.md

File metadata and controls

156 lines (111 loc) · 9 KB

🇨🇳中文 | 🌐English | 🇯🇵日本語


Agentica: Build AI Agents

PyPI version Downloads Contributions welcome License Apache 2.0 python_version GitHub issues Wechat Group

agentica: A Human-Centric Framework for Large Language Model Agent Workflows, build your agent workflows quickly

agentica: 快速构建你自己的Agent

Overview

LLM Agent

llm_agnet

  • 规划(Planning):任务拆解、生成计划、反思
  • 记忆(Memory):短期记忆(prompt实现)、长期记忆(RAG实现)
  • 工具使用(Tool use):function call能力,调用外部API,以获取外部信息,包括当前日期、日历、代码执行能力、对专用信息源的访问等

agentica架构

agentica_arch

  • Planner:负责让LLM生成一个多步计划来完成复杂任务,生成相互依赖的“链式计划”,定义每一步所依赖的上一步的输出
  • Worker:接受“链式计划”,循环遍历计划中的每个子任务,并调用工具完成任务,可以自动反思纠错以完成任务
  • Solver:求解器将所有这些输出整合为最终答案

Features

agentica是一个Agent工作流构建工具,功能:

  • 简单代码快速编排复杂工作流
  • 工作流的编排不仅支持prompt命令,还支持工具调用(tool_calls)
  • 支持OpenAI API和Moonshot API(kimi)调用

Installation

pip install -U agentica

or

git clone https://github.com/shibing624/agentica.git
cd agentica
pip install .

Getting Started

  1. 复制example.env文件为.env,并粘贴OpenAI API key或者Moonshoot API key。

  2. 使用agentica构建Agent,拆解任务并执行:

自动调用google搜索工具,示例examples/web_search_demo.py

from agentica import Assistant, OpenAILLM, AzureOpenAILLM
from agentica.tools.search_serper import SearchSerperTool

m = Assistant(
  llm=AzureOpenAILLM(),
  description="You are a helpful ai assistant.",
  show_tool_calls=True,
  # Enable the assistant to search the knowledge base
  search_knowledge=False,
  tools=[SearchSerperTool()],
  # Enable the assistant to read the chat history
  read_chat_history=True,
  debug_mode=True,
)
m.run("一句话介绍林黛玉")
m.run("北京最近的新闻", stream=True, print_output=True)
m.run("总结前面的问答")

Examples

示例 描述
examples/naive_rag_demo.py 实现了基础版RAG,基于Txt文档回答问题
examples/advanced_rag_demo.py 实现了高级版RAG,基于PDF文档回答问题,新增功能:pdf文件解析、query改写,字面+语义多路召回,召回排序(rerank)
examples/python_assistant_demo.py 实现了Code Interpreter功能,自动生成python代码,并执行
examples/research_demo.py 实现了Research功能,自动调用搜索工具,汇总信息后撰写科技报告
examples/run_flow_news_article_demo.py 实现了写新闻稿的工作流,multi-agent的实现,定义了多个Assistant和Task,多次调用搜索工具,并生成高级排版的新闻文章
examples/run_flow_investment_demo.py 实现了投资研究的工作流:股票信息收集 - 股票分析 - 撰写分析报告 - 复查报告等多个Task
examples/crawl_webpage.py 实现了网页分析工作流:从Url爬取融资快讯 - 分析网页内容和格式 - 提取核心信息 - 汇总保存为md文件
examples/find_paper_from_arxiv.py 实现了论文推荐工作流:自动从arxiv搜索多组论文 - 相似论文去重 - 提取核心论文信息 - 保存为csv文件
examples/remove_image_background.py 实现了自动去除图片背景功能,包括自动通过pip安装库,调用库实现去除图片背景
examples/text_classification_demo.py 实现了自动训练分类模型的工作流:读取训练集文件并理解格式 - 谷歌搜索pytextclassifier库 - 爬取github页面了解pytextclassifier的调用方法 - 写代码并执行fasttext模型训练 - check训练好的模型预测结果

Contact

  • Issue(建议) :GitHub issues
  • 邮件我:xuming: [email protected]
  • 微信我: 加我微信号:xuming624, 备注:姓名-公司-NLP 进NLP交流群。

Citation

如果你在研究中使用了agentica,请按如下格式引用:

APA:

Xu, M. agentica: A Human-Centric Framework for Large Language Model Agent Workflows (Version 0.0.2) [Computer software]. https://github.com/shibing624/agentica

BibTeX:

@misc{Xu_agentica,
  title={agentica: A Human-Centric Framework for Large Language Model Agent Workflows},
  author={Xu Ming},
  year={2024},
  howpublished={\url{https://github.com/shibing624/agentica}},
}

License

授权协议为 The Apache License 2.0,可免费用做商业用途。请在产品说明中附加agentica的链接和授权协议。

Contribute

项目代码还很粗糙,如果大家对代码有所改进,欢迎提交回本项目,在提交之前,注意以下两点:

  • tests添加相应的单元测试
  • 使用python -m pytest来运行所有单元测试,确保所有单测都是通过的

之后即可提交PR。

Acknowledgements

Thanks for their great work!