Home

Awesome

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

<div align="center"> <a href="https://github.com/shibing624/agentica"> <img src="https://raw.githubusercontent.com/shibing624/agentica/main/docs/logo.png" height="150" alt="Logo"> </a> </div>

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 Building. 快速打造你的专属Agent。

Overview

LLM Agent

<img src="https://github.com/shibing624/agentica/blob/main/docs/llm_agentv2.png" width="800" />

Agentica Assistant Architecture

<img src="https://github.com/shibing624/agentica/blob/main/docs/agent_arch.png" width="800" />

Features

Agentica是一个Agent构建工具,功能:

Installation

pip install -U agentica

or

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

Getting Started

Run the example

# Copying required .env file, and fill in the LLM api key
cp .env.example ~/.agentica/.env

cd examples
python web_search_deepseek_demo.py
  1. 复制.env.example文件为~/.agentica/.env,并填写LLM api key(选填DEEPSEEK_API_KEY、MOONSHOT_API_KEY、OPENAI_API_KEY等任一个即可)。

  2. 使用agentica构建Agent并执行:

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

import os
os.environ["DEEPSEEK_API_KEY"] = "your_deepseek_api_key"
os.environ["SERPER_API_KEY"] = "your_serper_api_key"
from agentica import Assistant, DeepseekLLM, SearchSerperTool
m = Assistant(llm=DeepseekLLM(), tools=[SearchSerperTool()])
r = m.run("一句话介绍林黛玉")
print(r, "".join(r))
r = m.run("北京最近的新闻top3", stream=True)
print(r, "".join(r))
r = m.run("总结前面的问答", stream=False)
print(r)

Web UI

shibing624/ChatPilot 兼容agentica,可以通过Web UI进行交互。

Web Demo: https://chat.mulanai.com

<img src="https://github.com/shibing624/ChatPilot/blob/main/docs/shot.png" width="800" />
git clone https://github.com/shibing624/ChatPilot.git
cd ChatPilot
pip install -r requirements.txt

cp .env.example .env

bash start.sh

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/team_news_article_demo.py实现了写新闻稿的team协作,multi-role实现,委托不用角色完成各自任务:研究员检索分析文章,撰写员根据排版写文章,汇总多角色成果输出结果
examples/workflow_news_article_demo.py实现了写新闻稿的工作流,multi-agent的实现,定义了多个Assistant和Task,多次调用搜索工具,并生成高级排版的新闻文章
examples/workflow_investment_demo.py实现了投资研究的工作流:股票信息收集 - 股票分析 - 撰写分析报告 - 复查报告等多个Task
examples/crawl_webpage_demo.py实现了网页分析工作流:从Url爬取融资快讯 - 分析网页内容和格式 - 提取核心信息 - 汇总保存为md文件
examples/find_paper_from_arxiv_demo.py实现了论文推荐工作流:自动从arxiv搜索多组论文 - 相似论文去重 - 提取核心论文信息 - 保存为csv文件
examples/remove_image_background_demo.py实现了自动去除图片背景功能,包括自动通过pip安装库,调用库实现去除图片背景
examples/text_classification_demo.py实现了自动训练分类模型的工作流:读取训练集文件并理解格式 - 谷歌搜索pytextclassifier库 - 爬取github页面了解pytextclassifier的调用方法 - 写代码并执行fasttext模型训练 - check训练好的模型预测结果
examples/llm_os_demo.py实现了LLM OS的初步设计,基于LLM设计操作系统,可以通过LLM调用RAG、代码执行器、Shell等工具,并协同代码解释器、研究助手、投资助手等来解决问题。
examples/workflow_write_novel_demo.py实现了写小说的工作流:定小说提纲 - 搜索谷歌反思提纲 - 撰写小说内容 - 保存为md文件
examples/workflow_write_tutorial_demo.py实现了写技术教程的工作流:定教程目录 - 反思目录内容 - 撰写教程内容 - 保存为md文件
examples/self_evolving_agent_demo.py实现了基于长期记忆的自我进化智能体,可以基于历史问答信息自我调整决策

LLM OS

The LLM OS design:

<img alt="LLM OS" src="https://github.com/shibing624/agentica/blob/main/docs/llmos.png" width="800" />

Run the LLM OS App

cd examples
streamlit run llm_os_demo.py
<img alt="LLM OS" src="https://github.com/shibing624/agentica/blob/main/docs/llm_os_snap.png" width="800" />

Self-evolving Agent

The self-evolving agent design:

<img alt="LLM OS" src="https://github.com/shibing624/agentica/blob/main/docs/sage_arch.png" width="800" />

Feature

具有反思和增强记忆能力的自我进化智能体(self-evolving Agents with Reflective and Memory-augmented Abilities, SAGE)

实现方法:

  1. 使用PythonAssistant作为SAGE智能体,使用AzureOpenAILLM作为LLM, 具备code-interpreter功能,可以执行Python代码,并自动纠错。
  2. 使用CsvMemoryDb作为SAGE智能体的记忆,用于存储用户的问题和答案,下次遇到相似的问题时,可以直接返回答案。

Run Self-evolving Agent App

cd examples
streamlit run self_evolving_agent_demo.py
<img alt="sage_snap" src="https://github.com/shibing624/agentica/blob/main/docs/sage_snap.png" width="800" />

Contact

<img src="https://github.com/shibing624/agentica/blob/main/docs/wechat.jpeg" width="200" />

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

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

之后即可提交PR。

Acknowledgements

Thanks for their great work!