agentica

agentica

Agentica: Effortlessly Build Intelligent, Reflective, and Collaborative Multimodal AI Agents! 轻松构建智能、具备反思能力、可协作的多模态AI Agent。

Stars: 108

Visit
 screenshot

Agentica is a human-centric framework for building large language model agents. It provides functionalities for planning, memory management, tool usage, and supports features like reflection, planning and execution, RAG, multi-agent, multi-role, and workflow. The tool allows users to quickly code and orchestrate agents, customize prompts, and make API calls to various services. It supports API calls to OpenAI, Azure, Deepseek, Moonshot, Claude, Ollama, and Together. Agentica aims to simplify the process of building AI agents by providing a user-friendly interface and a range of functionalities for agent development.

README:

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

Logo

Agentica: Build AI Agents

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

Agentica: 轻松构建智能、具备反思能力、可协作的多模态AI Agent。

📖 Introduction

Agentica 可以构建AI Agent,包括规划、记忆和工具使用、执行等组件。

Agent Components

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

Agentica Workflow

Agentica can also build multi-agent systems and workflows.

Agentica 还可以构建多Agent系统和工作流。

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

🔥 News

[2024/12/29] v0.2.3版本: 支持了ZhipuAI的api调用,包括免费模型和工具使用,详见Release-v0.2.3

[2024/12/25] v0.2.0版本: 支持了多模态模型,输入可以是文本、图片、音频、视频,升级Assistant为Agent,Workflow支持拆解并实现复杂任务,详见Release-v0.2.0

[2024/07/02] v0.1.0版本:实现了基于LLM的Assistant,可以快速用function call搭建大语言模型助手,详见Release-v0.1.0

😊 Features

Agentica是一个用于构建Agent的工具,具有以下功能:

  • Agent编排:通过简单代码快速编排Agent,支持 Reflection(反思)、Plan and Solve(计划并执行)、RAG、Agent、Multi-Agent、Team、Workflow等功能
  • 自定义prompt:Agent支持自定义prompt和多种工具调用(tool_calls)
  • LLM集成:支持OpenAI、Azure、Deepseek、Moonshot、Anthropic、ZhipuAI、Ollama、Together等多方大模型厂商的API
  • 记忆功能:包括短期记忆和长期记忆功能
  • Multi-Agent协作:支持多Agent和任务委托(Team)的团队协作。
  • Workflow工作流:拆解复杂任务为多个Agent,基于工作流自动化串行逐步完成任务,如投资研究、新闻文章撰写和技术教程创建
  • 自我进化Agent:具有反思和增强记忆能力的自我进化Agent
  • Web UI:兼容ChatPilot,可以基于Web页面交互,支持主流的open-webui、streamlit、gradio等前端交互框架

💾 Install

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_moonshot_demo.py
  1. 复制.env.example文件为~/.agentica/.env,并填写LLM api key(选填DEEPSEEK_API_KEY、MOONSHOT_API_KEY、OPENAI_API_KEY、ZHIPUAI_API_KEY等任一个即可)。或者使用export命令设置环境变量:

    export MOONSHOT_API_KEY=your_moonshot_api_key
    export SERPER_API_KEY=your_serper_api_key
  2. 使用agentica构建Agent并执行:

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

from agentica import Agent, MoonshotChat, SearchSerperTool

m = Agent(model=MoonshotChat(), tools=[SearchSerperTool()], add_datetime_to_instructions=True)
r = m.run("下一届奥运会在哪里举办")
print(r)

▶️ Web UI

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

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

git clone https://github.com/shibing624/ChatPilot.git
cd ChatPilot
pip install -r requirements.txt

cp .env.example .env

bash start.sh

😀 Examples

示例 描述
examples/01_llm_demo.py LLM问答Demo
examples/02_user_prompt_demo.py 自定义用户prompt的Demo
examples/03_user_messages_demo.py 自定义输入用户消息的Demo
examples/04_memory_demo.py Agent的记忆Demo
examples/05_response_model_demo.py 按指定格式(pydantic的BaseModel)回复的Demo
examples/06_calc_with_csv_file_demo.py LLM加载CSV文件,并执行计算来回答的Demo
examples/07_create_image_tool_demo.py 实现了创建图像工具的Demo
examples/08_ocr_tool_demo.py 实现了OCR工具的Demo
examples/09_remove_image_background_tool_demo.py 实现了自动去除图片背景功能,包括自动通过pip安装库,调用库实现去除图片背景
examples/10_vision_demo.py 视觉理解Demo
examples/11_web_search_openai_demo.py 基于OpenAI的function call做网页搜索Demo
examples/12_web_search_moonshot_demo.py 基于Moonshot的function call做网页搜索Demo
examples/13_storage_demo.py Agent的存储Demo
examples/14_custom_tool_demo.py 自定义工具,并用大模型自主选择调用的Demo
examples/15_crawl_webpage_demo.py 实现了网页分析工作流:从Url爬取融资快讯 - 分析网页内容和格式 - 提取核心信息 - 汇总存为md文件
examples/16_get_top_papers_demo.py 解析每日论文,并保存为json格式的Demo
examples/17_find_paper_from_arxiv_demo.py 实现了论文推荐的Demo:自动从arxiv搜索多组论文 - 相似论文去重 - 提取核心论文信息 - 保存为csv文件
examples/18_agent_input_is_list.py 展示Agent的message可以是列表的Demo
examples/19_naive_rag_demo.py 实现了基础版RAG,基于Txt文档回答问题
examples/20_advanced_rag_demo.py 实现了高级版RAG,基于PDF文档回答问题,新增功能:pdf文件解析、query改写,字面+语义多路混合召回,召回排序(rerank)
examples/21_memorydb_rag_demo.py 把参考资料放到prompt的传统RAG做法的Demo
examples/22_chat_pdf_app_demo.py 对PDF文档做深入对话的Demo
examples/23_python_agent_memory_demo.py 实现了带记忆的Code Interpreter功能,自动生成python代码并执行,下次执行时从记忆获取结果
examples/24_context_demo.py 实现了传入上下文进行对话的Demo
examples/25_tools_with_context_demo.py 工具带上下文传参的Demo
examples/26_complex_translate_demo.py 实现了复杂翻译Demo
examples/27_research_agent_demo.py 实现了Research功能,自动调用搜索工具,汇总信息后撰写科技报告
examples/28_rag_integrated_langchain_demo.py 集成LangChain的RAG Demo
examples/29_rag_integrated_llamaindex_demo.py 集成LlamaIndex的RAG Demo
examples/30_text_classification_demo.py 实现了自动训练分类模型的Agent:读取训练集文件并理解格式 - 谷歌搜索pytextclassifier库 - 爬取github页面了解pytextclassifier的调用方法 - 写代码并执行fasttext模型训练 - check训练好的模型预测结果
examples/31_team_news_article_demo.py Team实现:写新闻稿的team协作,multi-role实现,委托不用角色完成各自任务:研究员检索分析文章,撰写员根据排版写文章,汇总多角色成果输出结果
examples/32_team_debate_demo.py Team实现:基于委托做双人辩论Demo,特朗普和拜登辩论
examples/33_self_evolving_agent_demo.py 实现了自我进化Agent的Demo
examples/34_llm_os_demo.py 实现了LLM OS的初步设计,基于LLM设计操作系统,可以通过LLM调用RAG、代码执行器、Shell等工具,并协同代码解释器、研究助手、投资助手等来解决问题。
examples/35_workflow_investment_demo.py 实现了投资研究的工作流:股票信息收集 - 股票分析 - 撰写分析报告 - 复查报告等多个Task
examples/36_workflow_news_article_demo.py 实现了写新闻稿的工作流,multi-agent的实现,多次调用搜索工具,并生成高级排版的新闻文章
examples/37_workflow_write_novel_demo.py 实现了写小说的工作流:定小说提纲 - 搜索谷歌反思提纲 - 撰写小说内容 - 保存为md文件
examples/38_workflow_write_tutorial_demo.py 实现了写技术教程的工作流:定教程目录 - 反思目录内容 - 撰写教程内容 - 保存为md文件
examples/39_audio_multi_turn_demo.py 基于openai的语音api做多轮音频对话的Demo
examples/40_web_search_zhipuai_demo.py 基于智谱AI的api做网页搜索Demo,使用免费的glm-4-flash模型,和免费的web-search-pro搜索工具

Self-evolving Agent

The self-evolving agent design:

LLM OS

Feature

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

实现方法:

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

Run Self-evolving Agent App

cd examples
streamlit run 33_self_evolving_agent_demo.py

sage_snap

LLM OS

The LLM OS design:

LLM OS

Run the LLM OS App

cd examples
streamlit run 34_llm_os_demo.py

LLM OS

命令行模式(CLI)

支持终端命令行快速搭建并体验Agent

code: cli.py

> agentica -h                                    
usage: cli.py [-h] [--query QUERY]
              [--model_provider {openai,azure,moonshot,zhipuai,deepseek,yi}]
              [--model_name MODEL_NAME] [--api_base API_BASE]
              [--api_key API_KEY] [--max_tokens MAX_TOKENS]
              [--temperature TEMPERATURE] [--verbose VERBOSE]
              [--tools [{search_serper,file_tool,shell_tool,yfinance_tool,web_search_pro,cogview,cogvideo,jina,wikipedia} ...]]

CLI for agentica

options:
  -h, --help            show this help message and exit
  --query QUERY         Question to ask the LLM
  --model_provider {openai,azure,moonshot,zhipuai,deepseek,yi}
                        LLM model provider
  --model_name MODEL_NAME
                        LLM model name to use, can be
                        gpt-4o/glm-4-flash/deepseek-chat/yi-lightning/...
  --api_base API_BASE   API base URL for the LLM
  --api_key API_KEY     API key for the LLM
  --max_tokens MAX_TOKENS
                        Maximum number of tokens for the LLM
  --temperature TEMPERATURE
                        Temperature for the LLM
  --verbose VERBOSE     enable verbose mode
  --tools [{search_serper,file_tool,shell_tool,yfinance_tool,web_search_pro,cogview,cogvideo,jina,wikipedia} ...]
                        Tools to enable

run:

pip install agentica -U
# 单次调用,填入`--query`参数
agentica --query "下一届奥运会在哪里举办" --model_provider zhipuai --model_name glm-4-flash --tools web_search_pro
# 多次调用,多轮对话,不填`--query`参数
agentica --model_provider zhipuai --model_name glm-4-flash --tools web_search_pro cogview --verbose 1

output:

2024-12-30 21:59:15,000 - agentica - INFO - Agentica CLI
>>> 帮我画个大象在月球上的图

> 我帮你画了一张大象在月球上的图,它看起来既滑稽又可爱。大象穿着宇航服,站在月球表面,背景是广阔的星空和地球。这张图色彩明亮,细节丰富,具有卡通风格。你可以点击下面的链接查看和下载这张图片:

![大象在月球上的图](https://aigc-files.bigmodel.cn/api/cogview/20241230215915cfa22f46425e4cb0_0.png)

☎️ 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!

For Tasks:

Click tags to check more tools for each tasks

For Jobs:

Alternative AI tools for agentica

Similar Open Source Tools

For similar tasks

For similar jobs