Observed since 20 Oct, 22:11 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Agentica: A lightweight Python SDK for building AI agents with persistent memory and self-evolution
一个人,一支 agent 团队。
CLI 终端、本机 Web、Desktop App 是同一套产品,跑在你自己的机器上。
macOS · Windows · Linux
简体中文 | English
https://github.com/user-attachments/assets/39fb961e-3979-4629-a87d-81dce9196597
工具面刻意收窄、接口保持底层,对 DeepSeek 等开放模型深度适配。和 OpenAI Codex 各跑同一个模型、同一批公开题目,正面对比:
编程题全对、数据分析题准确率更高——而且快一倍、输入 token 少三分之二。 复现命令、逐项指标与原始 predictions.jsonl 见 评测页。
一个终端会话就是一个可协作的 agent。进程内 task 拉临时 subagent,进程级 delegate 另起一整个 agent 去干独立的大活,跨终端 peer 消息让两个会话互相说话——都不需要额外部署任何东西。
跑完的经验自动编译成可跨会话复用的 SKILL.md;下次遇到同类任务,agent 读的是自己上次的结论,不是从零开始。流程见 Skills 文档。
业界主流的 compact 是让 LLM 把前文概括成摘要——花一次额外调用、有损,而且被概括掉的细节再也拿不回来。Agentica 的压缩路径全程零 LLM 摘要:
read_file 取回;会话本身没有读文件能力时就老实截断并说明,绝不发一个没人打得开的路径<context_window> 和交接 notes 开一个空活动窗,不合成假摘要轮原文始终留在 session JSONL 里,search_session 随时按词取回。结果:长会话不失忆、不为压缩额外付 token、每个压缩点都可回溯。 细节见 压缩文档。
微信 / 企微 / 飞书 / Telegram 直连本机 agent:@会话名 自己寻址,或者只说一句人话,让网关 agent 去指挥这台机器上的所有会话。
CLI(agentica)和 Web / Desktop 后端(agentica-gateway)都用 uv tool 装进隔离环境,不绑系统 Python。没有 uv:
curl -LsSf https://astral.sh/uv/install.sh | sh # 独立安装,进 ~/.local/bin
# macOS 也可以:brew install uv
# CLI
uv tool install agentica
# Web / Desktop(同一套命令,多出 agentica-gateway)
uv tool install "agentica[gateway]"
已经装过 CLI、再补 Web:uv tool install --force "agentica[gateway]"。升级:uv tool upgrade agentica。命令找不到时跑一次 uv tool update-shell。
开发本仓库用 pip install -e .。详见 安装文档。
窗口里就是同一套 Web UI,同一 ~/.agentica,和 CLI / 浏览器混用没有区别。
[!IMPORTANT] 当前构建未签名,系统可能拦第一次启动,按对应系统操作一次即可。机器上还没有
agentica-gateway时,桌面版会在第一次打开时用 uv 安装一份托管 runtime(Python 3.12 +agentica[gateway]),放在 Application Support,不进~/.agentica。已经uv tool install(或旧的pip install)过的继续用你原来的。
macOS 给从网络下载的文件加了隔离标记,应用未签名时会被误报成「已损坏」。删掉标记即可:
打开 dmg,把 Agentica.app 拖进「应用程序」。
打开「终端」,粘贴这条命令回车(要输开机密码,输入时不显示字符):
sudo xattr -rd com.apple.quarantine /Applications/Agentica.app
SmartScreen 会拦未签名的安装程序:点「更多信息」→「仍要运行」。只有第一次需要。
浏览器下载的 AppImage 默认没有执行权限(deb 走包管理器,没这个问题):
chmod +x Agentica-x86_64.AppImage
也可以直接从源码跑:cd desktop && npm install && npm start,详见 desktop/README.md。
配上任一模型厂商的 API Key 即可(优先级:shell 环境变量 > .env > config.yaml):
export OPENAI_BASE_URL="https://api.openai.com/v1"
export OPENAI_API_KEY="sk-xxx"
# 或用可免费起步的智谱:export ZAI_API_KEY="your-api-key"
也可以写进 ~/.agentica/.env,或运行 agentica setup 生成 ~/.agentica/config.yaml(CLI 内随时 /model 切换)。完整说明见 安装文档。
终端输入:
agentica
进交互终端后直接说话,例如「帮我看下这个仓库的单测为什么挂了」。
uv tool install "agentica[gateway]"
agentica-gateway
本机网页在 http://127.0.0.1:8881/chat(聊天、轨迹、设置)。首次启动会建一个 default 账号并把随机初始密码打在终端里;管理员可以在「用户管理」页加账号,每个账号有自己独立的会话和记忆。微信 / 企微 / 飞书 / Telegram 直连见 Gateway 文档。
自托管(Docker,镜像里编好 UI,运行时不需要 Node):
cp .env.docker.example .env # 填 OPENAI_API_KEY
docker compose up -d --build
浏览器打开 http://127.0.0.1:8881/chat。数据在 named volume,当前目录挂到容器 /workspace。
给已经在跑的 gateway 写 Node 脚本时用,不是启动 Web 的步骤:
npm install @agentica-ai/sdk
包名必须写全 @agentica-ai/sdk(registry.npmjs.org,不要写成 agentica-sdk)。
import { Agentica } from "@agentica-ai/sdk";
const agentica = new Agentica({
baseURL: "http://127.0.0.1:8881",
apiKey: process.env.AGENTICA_GATEWAY_TOKEN, // ~/.agentica/cache/gateway/runtime.json
});
for await (const event of agentica.chat.stream({ message: "ping", session_id: "demo" })) {
if (event.event === "content") process.stdout.write(String(event.data));
}
源码在 sdk-ts/。
让 Agent 直接搜资料 + 写文件,一行 run_sync 开始干活:
from agentica import Agent, OpenAIChat, BuiltinWebSearchTool, BuiltinFileTool, BuiltinExecuteTool
agent = Agent(
model=OpenAIChat(id="gpt-4o-mini"),
tools=[BuiltinWebSearchTool(), BuiltinFileTool(work_dir="./workspace"), BuiltinExecuteTool(work_dir="./workspace")],
)
agent.run_sync("帮我搜 Python 3.13 新特性,写到 features.md")
开箱即用的完全体(内置工具 + 压缩 + 长期记忆 + skills + MCP):
from agentica import DeepAgent
agent = DeepAgent()
核心引擎
asyncio.gather() 并行工具执行,同步适配器兼容read_file / write_file / apply_patch / grep / glob、execute、网页搜索;长报告用 write_file 写 HTML产品入口
agentica 交互终端;进程内 task、进程级 delegate、跨终端 peer 消息agentica-gateway 本机 SPA(聊天 / 轨迹 / 设置)+ IM 渠道协作
Agent.as_tool()、Workflow、Swarm、Markdown Subagent;CLI:task / delegate / peer 消息(见 终端文档)refine() + 多 Critic 并行评审,SchemaCritic 程序级零成本验证 / AgentCritic 异构强模型把关,循环检测自动早停记忆与进化
AGENTS.mdsearch_session 随时取回,交接写 <session>.notes.mdSKILL.md集成
架构与执行引擎(Agentic Loop、两层上下文压缩、四层护栏)见 架构文档。
task / delegate / peer| 机制 | 做什么 | 何时用 |
|---|---|---|
task | 同进程 subagent(默认 auxiliary 模型,只读) | 搜代码、查资料等短活 |
delegate | 另起一个完整 agentica --query --print 进程 | 需要独立 context / 另一目录的大活;/ps、wait、/stop 可管 |
| peer | 两个交互终端互发纯文本(list_agents / send_message) | 告诉另一会话「这边改了什么」,不是雇工 |
查看 examples/ 获取完整示例,涵盖:
| 类别 | 内容 |
|---|---|
| 基础用法 | Hello World、流式输出、结构化输出、多轮对话、多模态、Agentic Loop 对比 |
| 工具 | 自定义工具、Async 工具、搜索、代码执行、并行工具、并发安全、成本追踪、沙箱隔离、压缩 |
| Agent 模式 | Agent 作为工具、并行执行、团队协作、辩论、路由分发、Swarm、子 Agent、模型层钩子、会话恢复 |
| 安全护栏 | 输入/输出/工具级 Guardrails、流式护栏 |
| 记忆 | 会话历史、WorkingMemory、无损上下文压缩、Workspace 记忆、LLM 自动记忆 |
| RAG | PDF 问答、高级 RAG、LangChain / LlamaIndex 集成 |
| 工作流 | 数据管道、投资研究、新闻报道、代码审查 |
| MCP | Stdio / SSE / HTTP 传输、JSON 配置 |
| 可观测性 | Langfuse、Token 追踪、Usage 聚合 |
| 应用 | LLM OS、深度研究、客服系统、金融研究(6-Agent 流水线) |
| Agentica | Claude Code | Codex CLI | |
|---|---|---|---|
| 模型选择 | ✅ 多厂商自由切换 | 仅 Claude 模型 | 仅 OpenAI 模型 |
| 跨终端多会话协作 | ✅ peer + delegate / task | ❌ | ❌ |
| Web + Desktop + IM | ✅ 本机网页 / Desktop App / 微信企微飞书 Telegram | ❌ | ❌ |
| 自进化 Skill | ✅ 经验自动编译 SKILL.md | ❌ | ❌ |
| Python SDK | ✅ 完整 SDK,可嵌入任意代码 | 部分(绑定 Claude) | ❌ |
| 开源 | ✅ Apache 2.0 | ❌ | ✅ |
analyze_image。公开 from agentica import … 不变,子模块按领域收进子包;worktree 不再搬家上锁。详见 Release-v1.4.17search_session 查;交互 CLI 可选 attach / 外部 hooks(默认关);MCP 只支持 2.x。详见 Release-v1.4.16@agentica-ai/sdk 与 Gateway Docker 镜像;/export 默认出 session JSONL;apply_patch 只精确匹配;CLI 不再把工具输出里的 [/path] 当成 Rich 标记。详见 Release-v1.4.15apply_patch + write_file(read_file 支持 tail);Worktree 默认进仓库内;系统 skill 包内加载;桌面版首次打开自动装 Python runtime。详见 Release-v1.4.14list_agents / send_message)与进程级 delegate(独立 agentica --query --print,经 /ps /stop wait 托管),与进程内 task 分工明确。详见 Release-v1.4.12apply_patch 多文件;CLI resume/状态栏/压缩提示增强;裁减 prompt 与 grep/glob schema;修复 Learned Experiences 污染与 write_todos 全量回显。详见 Release-v1.4.11/rename 和按名称 /resume。详见 Release-v1.4.10edit_file 改为 tip 提示而非硬拒;修复 ask_user_question CLI 卡死。详见 Release-v1.4.9/cron 命令 + daemon)、自管理(/upgrade、/config set|env);统一配置到 ~/.agentica/config.yaml。详见 Release-v1.4.7--enable-diagnostics/--diagnostics-server);支持 agentica doctor;支持 /goal 长程任务。详见 Release-v1.4.6auto_extract_memory_background 后台抽取(不再阻塞 on_agent_end),memory 抽取优先走更快更便宜的 auxiliary_model。详见 Release-v1.4.4SkillLifecycleHooks 统一扩展点。详见 Release-v1.4.3完整使用文档:https://shibing624.github.io/agentica
如果 Agentica 帮到了你,欢迎点个 ⭐ Star,让更多人看到!
xuming624,备注 "llm",加入技术交流群
如果您在研究中使用了 Agentica 的自进化与 skill 准入,请引用:
Shang, L., Xu, M., Sun, Y., Xia, T., Hu, L., Xu, L., & Zheng, N. (2026). When Self-Evolution Backfires: Pre-Commit Gating against Skill Contamination in LLM Agents. arXiv:2608.05810. https://arxiv.org/abs/2608.05810
BibTeX:
@misc{shang2026selfevolution,
title = {When Self-Evolution Backfires: Pre-Commit Gating against Skill Contamination in LLM Agents},
author = {Shang, Linfang and Xu, Ming and Sun, Yiding and Xia, Tianle and Hu, Lingxiang and Xu, Lan and Zheng, Ning},
year = {2026},
eprint = {2608.05810},
archivePrefix = {arXiv},
primaryClass = {cs.AI},
url = {https://arxiv.org/abs/2608.05810}
}
软件本身:
Xu, M. (2026). Agentica: A Human-Centric Framework for Large Language Model Agent Workflows. GitHub. https://github.com/shibing624/agentica
@misc{xu2026agentica,
author = {Xu, Ming},
title = {Agentica: A Human-Centric Framework for Large Language Model Agent Workflows},
year = {2026},
publisher = {GitHub},
url = {https://github.com/shibing624/agentica}
}
仓库根目录也提供了 CITATION.cff。
欢迎贡献!请查看 CONTRIBUTING.md。
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 1.4.17 | 15 Oct 2026 | 88 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 22:11 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:0d5952509b7076561d9f4792e9d8c94506f9e86a23247bb2b9e9e664b0ac6f36