Skip to main content

A self-evolving AI agent with dynamic toolkit management.

Project description

Tea Agent v0.13.15

⚠️ AI 写 AI 的实验项目,自行承担责任。

🌐 English Version

会自我进化的 AI 编程助手 — 不只是完成编码任务,还能修改自己的代码、创造新工具、优化自己的提示词,越用越强。

Python License: MIT Version


🎯 一句话看懂 Tea Agent

🧠 自进化 AI 写 AI —— 能改自己的代码、造新工具、优化提示词,任务越多越强
🧰 工具驱动 75+ 内置工具(文件/代码/搜索/截图/浏览器/包管理/Git),运行时热插拔
🖥️ 多形态 GUI / Web V2 / REST API / ACP / Telegram / 微信 六种界面,一套引擎
🧠 真记忆 类人长期记忆:分层优先级、语义检索、自然衰减、去重合并,跨会话不忘
🤖 多 Agent 6 阶段全栈协作:角色化 Agent + 事件流 + 消息总线 + 并行执行 + DAG 编排
📡 远程协同 toolkit_remote_agent 连接边缘设备(RK3588/BM1688),主机 ↔ 设备协同

✨ 核心特点

1. 🧠 自进化引擎(AI 写 AI)— 本项目灵魂

Agent 在运行中改造自己,全程五层安全防护:

toolkit_save          → 运行时创建/更新工具,即时生效,自动版本管理
toolkit_self_evolve   → 五层安全修改源码:Git 快照 → .bak → 语法检查 → 编译 → LSP → 测试
toolkit_prompt_evolve → 基于反思 + 记忆,自我优化系统提示词
toolkit_experience_solidify → 成功→技能,失败→教训,自动结晶复用

⚠️ 上下文感知:自进化能力只在 tea_agent 自身项目内激活;在外部项目中自动禁用,专注完成你的任务,不做有害改动。

2. 🧰 工具驱动 — 75+ 内置工具

类别 代表工具
📁 文件 / 代码 toolkit_file, toolkit_edit, toolkit_diff, toolkit_code_review, toolkit_format_code
🔍 搜索 / 智能 toolkit_search, toolkit_lsp, toolkit_explr, toolkit_query_chat_history
🖥️ 屏幕 / 浏览器 toolkit_screenshot, toolkit_ocr, toolkit_input, toolkit_js_fetch, toolkit_browser_tab
🧠 记忆 / 反思 toolkit_memory, toolkit_kb, toolkit_reflection, toolkit_proactive
🤖 多 Agent toolkit_parallel_subtasks, toolkit_subagent, toolkit_subagent_msg, toolkit_remote_agent
📋 规划 / 调度 toolkit_plan, toolkit_todo, toolkit_scheduler, toolkit_task_resume
🔧 系统 / 工程 toolkit_exec, toolkit_pkg, toolkit_build, toolkit_git_commit, toolkit_config

工具引擎(tlk.py)支持动态加载/卸载/重载 — 对话中创建一个新工具,下一轮就能用。

3. 🧠 类人长期记忆系统

模拟人类记忆的工作方式,底层 SQLite + 语义向量:

  • 优先级分层CRITICAL / HIGH / MEDIUM / LOW,关键指令优先注入
  • 语义检索:embedding 余弦相似度,从 ≤30 条活跃记忆中选最相关
  • 自然衰减:Ebbinghaus 遗忘曲线,旧记忆逐步降级,pinned 豁免
  • 去重合并:Jaccard + embedding 双通道,相似记忆自动合并提权
  • 跨主题汇总(v0.13.3+):每 3 轮后台分析,发现跨会话模式

4. 🤖 多 Agent 系统(v0.11+)

6 阶段全栈协作框架:

RoleAgent(角色化) + FlowEngine(事件流) + MessageBus(消息总线)
+ Agent-as-Tool(Agent 即工具) + ExecutionPool(并行执行)
+ WorkflowDAG(DAG 编排) + PatternMarket(模式市场) + TraceEngine(调用追踪)

零代码触发:对话中直接说「并行分析这几个文件」,自动拆分子任务并发执行。内置双 AI 辩论赛 Demo,左右分屏实时交锋。

5. 📡 远程设备 Agent(v0.13.10+)

通过 toolkit_remote_agent 连接边缘设备上的 tea_agent.server

register → exec(下发任务,session_id 控制上下文) → status(心跳) → unregister

适用于嵌入式调试(RK3588/BM1688/X3)、边缘节点管理分布式协同

6. 🏎️ Token 经济 — 四级历史压缩

L0 系统层 → L3 语义摘要 → L2 历史对 → L1 当前对话 四级组装上下文,在有限 token 窗口内最大化信息密度,长对话不爆上下文。


🚀 30 秒快速开始

# 1. 安装
pip install tea_agent

# 2. 启动(Web V2 全功能界面)
tea-agent-api
# 或 python -m tea_agent.server

# 3. 打开浏览器
# http://127.0.0.1:8282

首次启动自动弹出配置窗口,填入 LLM API Key 即可对话。


💻 界面形态

界面 启动方式 适用场景
Web V2(推荐) tea-agent-api 单页应用 SPA,全功能浏览器体验:聊天 + 记忆 + 调度 + 历史
GUI 桌面 tea-agent-gui Tkinter 原生桌面窗口,离线可用
REST API python -m tea_agent.server --port 8081 OpenAI 兼容接口,第三方集成
ACP 协议 tea-agent-acp VS Code / IDE 集成(JSON-RPC 2.0)
Telegram tea-agent-telegram 手机远程对话
微信 tea-agent-wechat 微信个人号接入(iLink Bot,扫码登录)
Mini 版 tea-agent-mini 嵌入式 / Docker / 低配 VPS

🗺️ 深度能力地图

想深入了解某一项?展开对应章节。

🧠 长期记忆系统 — 工作原理

存储结构:每条记忆含 content / priority(0-3) / importance(1-5) / category / tags / embedding / expires_at / pinned

选择算法(每次对话注入 ≤30 条):

score = 关键词相关性 × 重要度 × 时效因子 × 优先级因子

分层保底:CRITICAL 优先(上限 10)→ HIGH ≥3 → MEDIUM ≥2 → LOW ≥1 → 剩余按分竞争。

年龄衰减(Ebbinghaus):CRITICAL>30天→HIGH,HIGH>60天→MEDIUM,MEDIUM>90天→LOW。

提取分类instruction→CRITICALpreference/reminder→HIGHfact→MEDIUMgeneral→LOW,LLM 自动提取 + 4 级容错解析。

去重合并:Jaccard ≥0.6 合并(保留长内容、低优先级、高重要度);embedding 余弦 ≥0.92 批量去重。

CRITICAL FIFO:上限 30 条,超出软删除最旧,防指令记忆膨胀。

📜 四级历史压缩 — Token 效率
L0 系统层   系统提示词 + 任务恢复 + 记忆注入
L3 语义摘要 L2 溢出时 LLM 生成关键结论(50→20 裁剪)
L2 历史对   SQLite 环形缓冲(50 条),Jaccard 相关性筛选注入
L1 当前对话 128KB 截断 + 旧工具输出占位 + 5 级渐进裁剪
# L0 组装顺序
result.append({"role": "system", "content": system_prompt})
if has_pending_tasks:
    result.append({"role": "user", "content": resume_info})
if memories:
    result.append({"role": "user", "content": memories})

L3 注入格式([System Memory] 区)包含长期背景/偏好/关键结论 + 历史工具链回顾两块。

🔄 自进化引擎 — 安全机制

修改自身代码时五层防护,任一层失败自动回滚:

Layer 0  Git 快照(仅工作区干净时)
Layer 1  时间戳 .bak(永不覆盖)
Layer 1.5  语法严格检查(换行/缩进/括号/冒号)
Layer 2  py_compile 编译验证 → 失败回滚
Layer 2.5  LSP 智能检查(影响分析 + lint 对比 + 签名对比)
Layer 3  pytest 测试验证 → 失败 git reset --hard
能力 工具 安全
创建新工具 toolkit_save + toolkit_reload 版本回滚
修改源码 toolkit_self_evolve 五层安全
优化提示词 toolkit_prompt_evolve 版本回滚
固化经验 toolkit_experience_solidify 分类标签
代码智能 toolkit_lsp 只读
🤖 多 Agent — 核心组件

四种协作方式

方式 说明
FlowEngine 事件驱动流:@flow_start / @flow_listen / @flow_route,Mermaid 可视化
Agent-as-Tool 把子 Agent 包装成 toolkit_xxx,对话中直接调用
MessageBus 发布/订阅 + 点对点,Agent 间自由通信
ExecutionPool 线程池并行执行,批量 + 超时 + 状态查询

WorkflowDAG 节点TASK / CONDITION / LOOP / PARALLEL / WAIT / END 六种类型,静态编排复杂流程。

内置模式市场(4 个预制):代码审查专家 / 高级工程师 / 测试工程师 / 分析专家,一键实例化。

优势:并行快、专注高、可组合、可观测、零代码触发 ⚠️ 限制:Token 成本高(子任务×每任务)、协调开销、上下文隔离、并发改文件需串行化

📡 远程设备 Agent — 使用示例
# ① 注册设备
toolkit_remote_agent(action="register", device_id="bm1688-1",
    host="172.16.1.49", port=8282, working_path="/app/zkfs/")

# ② 下发任务(不传 session_id → 自动新建远程主题)
r = toolkit_remote_agent(action="exec", device_id="terminal-49",
    goal="分析 /record/dbs/log/ 今日日志")

# ③ 同一 session_id → 追加上下文继续对话
r2 = toolkit_remote_agent(action="exec", device_id="terminal-49",
    goal="继续排查网络问题", session_id=r["session_id"])

# ④ 任务完成 → 断开
toolkit_remote_agent(action="unregister", device_id="terminal-49")

📦 Mini 版(tea_agent_mini)

针对嵌入式设备 / 资源受限 / 仅需 Web 场景的瘦身版 —— 只依赖 7 个核心包(~5 MB vs Full 版 ~80 MB),保留 Agent 核心、Web V2、REST API、记忆、多 Agent 全部能力。

pip install tea_agent_mini        # 独立包
python build_mini.py              # 或从源码构建
python build_nuitka.py            # 或编译为单文件可执行文件(无需 Python 环境)
剔除内容 说明
GUI / ACP / Telegram 桌面与协议层
NumPy 向量 替换为纯 Python math+struct
Playwright / PyAutoGUI / MSS 可选自行安装
12 个重型工具 JS 渲染、截图、OCR、LSP 等按需启用

🔧 配置

配置文件 ~/.tea_agent/config.yaml

main_model:
  api_key: "sk-xxx"
  api_url: "https://api.openai.com/v1"
  model_name: "gpt-4o"
  max_context_tokens: 0    # 0=不限制,>0 启用渐进式 token 裁剪
cheap_model:               # 独立配置,用于摘要/记忆等廉价任务
  max_context_tokens: 0
embedding:
  provider: openai
  model: text-embedding-3-small
  • 上下文窗口控制max_context_tokens 超预算时按 5 级渐进裁剪(删旧历史 → 工具输出占位 → 清 thinking → 截长文 → 删旧轮)
  • 运行时调优:Agent 可用 toolkit_config 自主调整参数
  • Ruff 规范:内置 pyproject.toml Ruff 配置(E/F/W/I/N/UP/B/C4/SIM),Python 3.10 类型注解

🧪 测试

pytest                    # 全部单元测试(870+ 用例)
python tests/test_server_api.py --port 8282   # Server API 黑盒测试(8 套件 30+ 测试点)

测试覆盖:会话、工具、存储、多 Agent、LSP、ACP 协议、Server 路由、记忆系统。


🏗️ 项目结构

tea_agent/
├── agent.py           # Agent 统一入口
├── onlinesession.py   # 在线会话(工具循环 + 流式)
├── litesession.py     # 轻量会话
├── tlk.py             # 工具加载/注册/执行引擎(75+ 工具)
├── memory.py          # 长期记忆系统
├── config.py          # 配置管理
├── providers.py       # 50+ LLM 提供商适配
├── server/            # REST API + Web V2(Starlette + SSE)
├── protocol/          # ACP 协议
├── channel/           # Telegram / 微信适配器
├── toolkit/           # 75+ 工具模块
├── session/           # 历史压缩 / L1/L2/L3 / JSON 校验
├── store/             # 数据存储(10 子模块)
├── multi_agent/       # 多 Agent 系统
├── lsp/               # 代码智能(Jedi + Tree-sitter)
├── skills/            # 技能结晶
├── tests/             # 870+ 测试用例
└── demo/              # 演示应用(辩论赛 / 钢琴 / DAG)

📄 许可证

MIT License © 2024-2026 sunkw

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tea_agent-0.13.15.tar.gz (968.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tea_agent-0.13.15-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

Details for the file tea_agent-0.13.15.tar.gz.

File metadata

  • Download URL: tea_agent-0.13.15.tar.gz
  • Upload date:
  • Size: 968.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for tea_agent-0.13.15.tar.gz
Algorithm Hash digest
SHA256 2d2c14fec78c198418aec7ce37c01d7d7ef3350bd3f7f28aee89158da1925220
MD5 84e6d8089042b050a20673bd89311189
BLAKE2b-256 a9d6a7231fa944b93bf6ab0364b6fbd89b0b077d535fc838330530a7aada37c4

See more details on using hashes here.

File details

Details for the file tea_agent-0.13.15-py3-none-any.whl.

File metadata

  • Download URL: tea_agent-0.13.15-py3-none-any.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for tea_agent-0.13.15-py3-none-any.whl
Algorithm Hash digest
SHA256 b02a6abc96b3c81bc7bf05789e2ba5d76e0eb6c5fc04b716552fd1c6da6a7f92
MD5 edf3f3eee3aa72800ba6692ef0864836
BLAKE2b-256 92a807eeb91f7f5838a11365d1a29b06e677e1fd529607c1aa426e1a5f0e8cb0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page