⚠️ AI 写 AI 的实验项目,自行承担责任。
会自我进化的 AI 编程助手 — 不只是完成编码任务,还能修改自己的代码、创造新工具、优化自己的提示词,越用越强。
| 🧠 自进化 | AI 写 AI —— 能改自己的代码、造新工具、优化提示词,任务越多越强 |
| 🧰 工具驱动 | 75+ 内置工具(文件/代码/搜索/截图/浏览器/包管理/Git),运行时热插拔 |
| 🖥️ 多形态 | GUI / Web V2 / REST API / ACP / Telegram / 微信 六种界面,一套引擎 |
| 🧠 真记忆 | 类人长期记忆:分层优先级、语义检索、自然衰减、去重合并,跨会话不忘 |
| 🤖 多 Agent | 6 阶段全栈协作:角色化 Agent + 事件流 + 消息总线 + 并行执行 + DAG 编排 |
| 📡 远程协同 | toolkit_remote_agent 连接边缘设备(RK3588/BM1688),主机 ↔ 设备协同 |
Agent 在运行中改造自己,全程五层安全防护:
toolkit_save → 运行时创建/更新工具,即时生效,自动版本管理
toolkit_self_evolve → 五层安全修改源码:Git 快照 → .bak → 语法检查 → 编译 → LSP → 测试
toolkit_prompt_evolve → 基于反思 + 记忆,自我优化系统提示词
toolkit_experience_solidify → 成功→技能,失败→教训,自动结晶复用
⚠️ 上下文感知:自进化能力只在 tea_agent 自身项目内激活;在外部项目中自动禁用,专注完成你的任务,不做有害改动。
| 类别 | 代表工具 |
|---|---|
| 📁 文件 / 代码 | 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)支持动态加载/卸载/重载 — 对话中创建一个新工具,下一轮就能用。
模拟人类记忆的工作方式,底层 SQLite + 语义向量:
- 优先级分层:
CRITICAL / HIGH / MEDIUM / LOW,关键指令优先注入 - 语义检索:embedding 余弦相似度,从 ≤30 条活跃记忆中选最相关
- 自然衰减:Ebbinghaus 遗忘曲线,旧记忆逐步降级,
pinned豁免 - 去重合并:Jaccard + embedding 双通道,相似记忆自动合并提权
- 跨主题汇总(v0.13.3+):每 3 轮后台分析,发现跨会话模式
6 阶段全栈协作框架:
RoleAgent(角色化) + FlowEngine(事件流) + MessageBus(消息总线)
+ Agent-as-Tool(Agent 即工具) + ExecutionPool(并行执行)
+ WorkflowDAG(DAG 编排) + PatternMarket(模式市场) + TraceEngine(调用追踪)
零代码触发:对话中直接说「并行分析这几个文件」,自动拆分子任务并发执行。内置双 AI 辩论赛 Demo,左右分屏实时交锋。
通过 toolkit_remote_agent 连接边缘设备上的 tea_agent.server:
register → exec(下发任务,session_id 控制上下文) → status(心跳) → unregister
适用于嵌入式调试(RK3588/BM1688/X3)、边缘节点管理、分布式协同。
L0 系统层 → L3 语义摘要 → L2 历史对 → L1 当前对话 四级组装上下文,在有限 token 窗口内最大化信息密度,长对话不爆上下文。
# 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→CRITICAL、preference/reminder→HIGH、fact→MEDIUM、general→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 个预制):代码审查专家 / 高级工程师 / 测试工程师 / 分析专家,一键实例化。
✅ 优势:并行快、专注高、可组合、可观测、零代码触发
📡 远程设备 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")针对嵌入式设备 / 资源受限 / 仅需 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.tomlRuff 配置(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