[{"data":1,"prerenderedAt":1721},["ShallowReactive",2],{"lab-/labs/sibuchen-agents":3},{"id":4,"title":5,"author":6,"body":7,"category":1708,"date":1709,"description":76,"extension":1710,"featured":260,"home_position":219,"image":1711,"meta":1712,"navigation":260,"order":219,"path":1713,"seo":1714,"status":1715,"stem":1716,"tags":1717,"__hash__":1720},"content/labs/sibuchen-agents.md","sibuchen-agents","sibuchen",{"type":8,"value":9,"toc":1675},"minimark",[10,13,20,40,66,69,74,77,83,89,91,95,165,167,171,182,197,199,203,208,231,234,362,364,368,372,379,395,398,420,424,483,487,555,559,626,630,681,683,687,693,695,699,796,798,802,995,997,1001,1146,1148,1152,1156,1185,1189,1213,1215,1219,1228,1258,1261,1285,1287,1290,1293,1308,1311,1313,1317,1329,1445,1447,1451,1541,1543,1546,1609,1611,1615,1623,1625,1629,1632,1661,1663,1671],[11,12,5],"h1",{"id":5},[14,15,16],"p",{},[17,18,19],"strong",{},"模块化、可扩展的 Python AI Agent 框架",[14,21,22,33],{},[23,24,28],"a",{"href":25,"rel":26},"https://pypi.org/project/sibuchen-agents/",[27],"nofollow",[29,30],"img",{"alt":31,"src":32},"PyPI version","https://img.shields.io/pypi/v/sibuchen-agents?label=Version&color=3775A9&logo=pypi&logoColor=3775A9",[23,34,36],{"href":25,"rel":35},[27],[29,37],{"alt":38,"src":39},"Python","https://img.shields.io/pypi/pyversions/sibuchen-agents?label=Python&color=3776AB&logo=python&logoColor=3776AB",[14,41,42,50,58],{},[23,43,46],{"href":44,"rel":45},"https://www.gnu.org/licenses/gpl-3.0",[27],[29,47],{"alt":48,"src":49},"License","https://img.shields.io/badge/License-GPLv3-D6336C.svg?logo=GPLv3&logoColor=BD0000",[23,51,54],{"href":52,"rel":53},"https://github.com/sibuchen/sibuchen-agents",[27],[29,55],{"alt":56,"src":57},"GitHub","https://img.shields.io/badge/GitHub-sibuchen--agents-181717?logo=github&logoColor=181717",[23,59,62],{"href":60,"rel":61},"https://github.com/sibuchen/",[27],[29,63],{"alt":64,"src":65},"Author","https://img.shields.io/badge/Author-sibuchen-orange?logo=github&logoColor=181717",[67,68],"hr",{},[70,71,73],"h2",{"id":72},"项目概述","🤖 项目概述",[14,75,76],{},"sibuchen-agents 是一个面向开发者的 Python AI Agent 框架，用于快速构建基于大语言模型的智能体应用。框架提供多种推理范式、丰富的内置工具、智能记忆系统与多协议通信能力，支持从简单的单轮对话到复杂的多智能体协作场景。",[14,78,79,82],{},[17,80,81],{},"项目规模","：约 88 个源文件，8 大核心模块，已发布至 PyPI。",[14,84,85,88],{},[17,86,87],{},"技术栈","：Python 3.10+、Pydantic、OpenAI SDK、fastmcp、Qdrant、Neo4j、NoneBot2、sentence-transformers",[67,90],{},[70,92,94],{"id":93},"核心特性","✨ 核心特性",[96,97,98,105,111,117,123,129,135,141,147,153,159],"ul",{},[99,100,101,104],"li",{},[17,102,103],{},"多推理范式","：SimpleAgent、ReActAgent、FunctionCallAgent、ReflectionAgent、PlanAndSolveAgent、ToolAwareSimpleAgent",[99,106,107,110],{},[17,108,109],{},"多 LLM 后端","：OpenAI、Google Gemini、DashScope",[99,112,113,116],{},[17,114,115],{},"丰富内置工具","：文件操作、终端执行、搜索引擎、RAG 检索、记忆存储、任务管理、计算器等 14+ 工具",[99,118,119,122],{},[17,120,121],{},"智能记忆系统","：对话历史管理、Qdrant、Neo4j、RAG 检索",[99,124,125,128],{},[17,126,127],{},"多协议支持","：MCP、A2A、ANP、IM",[99,130,131,134],{},[17,132,133],{},"即时通讯（IM）","：基于 NoneBot2，支持 Telegram、飞书（Feishu）",[99,136,137,140],{},[17,138,139],{},"可观测性","：完整的 Trace 链路记录与 HTML 报告生成",[99,142,143,146],{},[17,144,145],{},"上下文工程","：自动上下文压缩与智能摘要",[99,148,149,152],{},[17,150,151],{},"熔断机制","：工具执行熔断器，防止级联失败",[99,154,155,158],{},[17,156,157],{},"流式输出","：支持 LLM 流式响应",[99,160,161,164],{},[17,162,163],{},"Skills 系统","：外部知识技能文件热加载",[67,166],{},[70,168,170],{"id":169},"️-系统架构","🗂️ 系统架构",[172,173,178],"pre",{"className":174,"code":176,"language":177},[175],"language-text","┌─────────────────────────────────────────────────────────────┐\n│                      用户 / IM 消息入口                       │\n│                   (Telegram / 飞书 / API)                    │\n├─────────────────────────────────────────────────────────────┤\n│                                                             │\n│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌────────────┐  │\n│  │  Agents   │  │  Tools   │  │  Memory  │  │ Protocols  │  │\n│  │ (6 种推理 │  │ (14+ 工具│  │ (4 层记忆│  │ (MCP/A2A/  │  │\n│  │  范式)    │  │  + 注册表│  │  + RAG)  │  │  ANP/IM)   │  │\n│  └────┬─────┘  └────┬─────┘  └────┬─────┘  └──────┬─────┘  │\n│       │              │              │               │        │\n│  ┌────┴──────────────┴──────────────┴───────────────┴────┐  │\n│  │                    Core 核心层                          │  │\n│  │  Agent 基类 / LLM 适配器 / 配置中心 / 生命周期管理      │  │\n│  └────────────────────┬──────────────────────────────────┘  │\n│                       │                                     │\n│  ┌────────────────────┼──────────────────────────────────┐  │\n│  │  Context 上下文工程 │ Observability 可观测性 | Skills   │  │\n│  └───────────────────────────────────────────────────────┘  │\n│                                                             │\n│  ┌───────────────────────────────────────────────────────┐  │\n│  │             LLM Adapters (多模型适配层)                 │  │\n│  │       OpenAI / Gemini / DashScope / 兼容接口            │  │\n│  └───────────────────────────────────────────────────────┘  │\n└─────────────────────────────────────────────────────────────┘\n","text",[179,180,176],"code",{"__ignoreMap":181},"",[14,183,184,185,188,189,192,193,196],{},"整体采用",[17,186,187],{},"分层架构","，自上而下为：入口层（IM 适配器 / API）→ Agent 层（推理范式）→ Core 层（基类、LLM 客户端、配置）→ 基础设施层（工具、记忆、协议、可观测性）。各模块之间通过",[17,190,191],{},"依赖注入","和",[17,194,195],{},"工厂模式","解耦，支持按需组合。",[67,198],{},[70,200,202],{"id":201},"安装","📦 安装",[204,205,207],"h3",{"id":206},"核心安装最小依赖","核心安装（最小依赖）",[172,209,213],{"className":210,"code":211,"language":212,"meta":181,"style":181},"language-bash shiki shiki-themes github-light github-dark","pip install sibuchen-agents\n","bash",[179,214,215],{"__ignoreMap":181},[216,217,220,224,228],"span",{"class":218,"line":219},"line",1,[216,221,223],{"class":222},"sScJk","pip",[216,225,227],{"class":226},"sZZnC"," install",[216,229,230],{"class":226}," sibuchen-agents\n",[204,232,233],{"id":233},"按需安装可选模块",[172,235,237],{"className":210,"code":236,"language":212,"meta":181,"style":181},"# 搜索工具（Tavily、SerpApi、DuckDuckGo）\npip install \"sibuchen-agents[search]\"\n\n# 记忆系统（Qdrant 向量库 + Neo4j 图数据库）\npip install \"sibuchen-agents[memory]\"\n\n# RAG 检索（transformers、sentence-transformers、PDF 解析）\npip install \"sibuchen-agents[rag]\"\n\n# 通信协议（MCP、A2A）\npip install \"sibuchen-agents[protocols]\"\n\n# 即时通讯（NoneBot2 + Telegram/飞书适配器）\npip install \"sibuchen-agents[im]\"\n\n# 全功能安装\npip install \"sibuchen-agents[all]\"\n",[179,238,239,245,255,262,268,278,283,289,299,304,310,320,325,331,341,346,352],{"__ignoreMap":181},[216,240,241],{"class":218,"line":219},[216,242,244],{"class":243},"sJ8bj","# 搜索工具（Tavily、SerpApi、DuckDuckGo）\n",[216,246,248,250,252],{"class":218,"line":247},2,[216,249,223],{"class":222},[216,251,227],{"class":226},[216,253,254],{"class":226}," \"sibuchen-agents[search]\"\n",[216,256,258],{"class":218,"line":257},3,[216,259,261],{"emptyLinePlaceholder":260},true,"\n",[216,263,265],{"class":218,"line":264},4,[216,266,267],{"class":243},"# 记忆系统（Qdrant 向量库 + Neo4j 图数据库）\n",[216,269,271,273,275],{"class":218,"line":270},5,[216,272,223],{"class":222},[216,274,227],{"class":226},[216,276,277],{"class":226}," \"sibuchen-agents[memory]\"\n",[216,279,281],{"class":218,"line":280},6,[216,282,261],{"emptyLinePlaceholder":260},[216,284,286],{"class":218,"line":285},7,[216,287,288],{"class":243},"# RAG 检索（transformers、sentence-transformers、PDF 解析）\n",[216,290,292,294,296],{"class":218,"line":291},8,[216,293,223],{"class":222},[216,295,227],{"class":226},[216,297,298],{"class":226}," \"sibuchen-agents[rag]\"\n",[216,300,302],{"class":218,"line":301},9,[216,303,261],{"emptyLinePlaceholder":260},[216,305,307],{"class":218,"line":306},10,[216,308,309],{"class":243},"# 通信协议（MCP、A2A）\n",[216,311,313,315,317],{"class":218,"line":312},11,[216,314,223],{"class":222},[216,316,227],{"class":226},[216,318,319],{"class":226}," \"sibuchen-agents[protocols]\"\n",[216,321,323],{"class":218,"line":322},12,[216,324,261],{"emptyLinePlaceholder":260},[216,326,328],{"class":218,"line":327},13,[216,329,330],{"class":243},"# 即时通讯（NoneBot2 + Telegram/飞书适配器）\n",[216,332,334,336,338],{"class":218,"line":333},14,[216,335,223],{"class":222},[216,337,227],{"class":226},[216,339,340],{"class":226}," \"sibuchen-agents[im]\"\n",[216,342,344],{"class":218,"line":343},15,[216,345,261],{"emptyLinePlaceholder":260},[216,347,349],{"class":218,"line":348},16,[216,350,351],{"class":243},"# 全功能安装\n",[216,353,355,357,359],{"class":218,"line":354},17,[216,356,223],{"class":222},[216,358,227],{"class":226},[216,360,361],{"class":226}," \"sibuchen-agents[all]\"\n",[67,363],{},[70,365,367],{"id":366},"快速开始","⚡ 快速开始",[204,369,371],{"id":370},"_1-配置环境变量","1. 配置环境变量",[14,373,374,375,378],{},"复制并编辑 ",[179,376,377],{},".env.example"," 文件：",[172,380,382],{"className":210,"code":381,"language":212,"meta":181,"style":181},"cp .env.example .env\n",[179,383,384],{"__ignoreMap":181},[216,385,386,389,392],{"class":218,"line":219},[216,387,388],{"class":222},"cp",[216,390,391],{"class":226}," .env.example",[216,393,394],{"class":226}," .env\n",[14,396,397],{},"最小配置：",[172,399,403],{"className":400,"code":401,"language":402,"meta":181,"style":181},"language-env shiki shiki-themes github-light github-dark","LLM_BASE_URL=https://api.openai.com/v1\nLLM_API_KEY=your-api-key\nLLM_MODEL_ID=gpt-4o\n","env",[179,404,405,410,415],{"__ignoreMap":181},[216,406,407],{"class":218,"line":219},[216,408,409],{},"LLM_BASE_URL=https://api.openai.com/v1\n",[216,411,412],{"class":218,"line":247},[216,413,414],{},"LLM_API_KEY=your-api-key\n",[216,416,417],{"class":218,"line":257},[216,418,419],{},"LLM_MODEL_ID=gpt-4o\n",[204,421,423],{"id":422},"_2-基础用法","2. 基础用法",[172,425,429],{"className":426,"code":427,"language":428,"meta":181,"style":181},"language-python shiki shiki-themes github-light github-dark","import asyncio\nfrom sibuchen_agents import SimpleAgent, SibuchenConfig\n\nasync def main():\n    config = SibuchenConfig()  # 自动读取 .env\n    agent = SimpleAgent(config=config)\n\n    response = await agent.run(\"帮我写一首关于人工智能的诗。\")\n    print(response)\n\nasyncio.run(main())\n","python",[179,430,431,436,441,445,450,455,460,464,469,474,478],{"__ignoreMap":181},[216,432,433],{"class":218,"line":219},[216,434,435],{},"import asyncio\n",[216,437,438],{"class":218,"line":247},[216,439,440],{},"from sibuchen_agents import SimpleAgent, SibuchenConfig\n",[216,442,443],{"class":218,"line":257},[216,444,261],{"emptyLinePlaceholder":260},[216,446,447],{"class":218,"line":264},[216,448,449],{},"async def main():\n",[216,451,452],{"class":218,"line":270},[216,453,454],{},"    config = SibuchenConfig()  # 自动读取 .env\n",[216,456,457],{"class":218,"line":280},[216,458,459],{},"    agent = SimpleAgent(config=config)\n",[216,461,462],{"class":218,"line":285},[216,463,261],{"emptyLinePlaceholder":260},[216,465,466],{"class":218,"line":291},[216,467,468],{},"    response = await agent.run(\"帮我写一首关于人工智能的诗。\")\n",[216,470,471],{"class":218,"line":301},[216,472,473],{},"    print(response)\n",[216,475,476],{"class":218,"line":306},[216,477,261],{"emptyLinePlaceholder":260},[216,479,480],{"class":218,"line":312},[216,481,482],{},"asyncio.run(main())\n",[204,484,486],{"id":485},"_3-使用工具的-react-agent","3. 使用工具的 ReAct Agent",[172,488,490],{"className":426,"code":489,"language":428,"meta":181,"style":181},"import asyncio\nfrom sibuchen_agents import ReActAgent, SibuchenConfig\nfrom sibuchen_agents.tools.builtin import CalculatorTool, SearchTool\n\nasync def main():\n    config = SibuchenConfig()\n    agent = ReActAgent(config=config)\n    agent.add_tool(CalculatorTool())\n    agent.add_tool(SearchTool())\n\n    response = await agent.run(\"今天是哪年？用2026减去这个年份等于多少？\")\n    print(response)\n\nasyncio.run(main())\n",[179,491,492,496,501,506,510,514,519,524,529,534,538,543,547,551],{"__ignoreMap":181},[216,493,494],{"class":218,"line":219},[216,495,435],{},[216,497,498],{"class":218,"line":247},[216,499,500],{},"from sibuchen_agents import ReActAgent, SibuchenConfig\n",[216,502,503],{"class":218,"line":257},[216,504,505],{},"from sibuchen_agents.tools.builtin import CalculatorTool, SearchTool\n",[216,507,508],{"class":218,"line":264},[216,509,261],{"emptyLinePlaceholder":260},[216,511,512],{"class":218,"line":270},[216,513,449],{},[216,515,516],{"class":218,"line":280},[216,517,518],{},"    config = SibuchenConfig()\n",[216,520,521],{"class":218,"line":285},[216,522,523],{},"    agent = ReActAgent(config=config)\n",[216,525,526],{"class":218,"line":291},[216,527,528],{},"    agent.add_tool(CalculatorTool())\n",[216,530,531],{"class":218,"line":301},[216,532,533],{},"    agent.add_tool(SearchTool())\n",[216,535,536],{"class":218,"line":306},[216,537,261],{"emptyLinePlaceholder":260},[216,539,540],{"class":218,"line":312},[216,541,542],{},"    response = await agent.run(\"今天是哪年？用2026减去这个年份等于多少？\")\n",[216,544,545],{"class":218,"line":322},[216,546,473],{},[216,548,549],{"class":218,"line":327},[216,550,261],{"emptyLinePlaceholder":260},[216,552,553],{"class":218,"line":333},[216,554,482],{},[204,556,558],{"id":557},"_4-function-call-agentopenai-原生工具调用","4. Function Call Agent（OpenAI 原生工具调用）",[172,560,562],{"className":426,"code":561,"language":428,"meta":181,"style":181},"import asyncio\nfrom sibuchen_agents import FunctionCallAgent, SibuchenConfig\nfrom sibuchen_agents.tools.builtin import FileReadTool, TerminalTool\n\nasync def main():\n    config = SibuchenConfig()\n    agent = FunctionCallAgent(config=config)\n    agent.add_tool(FileReadTool())\n    agent.add_tool(TerminalTool())\n\n    response = await agent.run(\"列出当前目录的文件，并读取 README.md 的前10行。\")\n    print(response)\n\nasyncio.run(main())\n",[179,563,564,568,573,578,582,586,590,595,600,605,609,614,618,622],{"__ignoreMap":181},[216,565,566],{"class":218,"line":219},[216,567,435],{},[216,569,570],{"class":218,"line":247},[216,571,572],{},"from sibuchen_agents import FunctionCallAgent, SibuchenConfig\n",[216,574,575],{"class":218,"line":257},[216,576,577],{},"from sibuchen_agents.tools.builtin import FileReadTool, TerminalTool\n",[216,579,580],{"class":218,"line":264},[216,581,261],{"emptyLinePlaceholder":260},[216,583,584],{"class":218,"line":270},[216,585,449],{},[216,587,588],{"class":218,"line":280},[216,589,518],{},[216,591,592],{"class":218,"line":285},[216,593,594],{},"    agent = FunctionCallAgent(config=config)\n",[216,596,597],{"class":218,"line":291},[216,598,599],{},"    agent.add_tool(FileReadTool())\n",[216,601,602],{"class":218,"line":301},[216,603,604],{},"    agent.add_tool(TerminalTool())\n",[216,606,607],{"class":218,"line":306},[216,608,261],{"emptyLinePlaceholder":260},[216,610,611],{"class":218,"line":312},[216,612,613],{},"    response = await agent.run(\"列出当前目录的文件，并读取 README.md 的前10行。\")\n",[216,615,616],{"class":218,"line":322},[216,617,473],{},[216,619,620],{"class":218,"line":327},[216,621,261],{"emptyLinePlaceholder":260},[216,623,624],{"class":218,"line":333},[216,625,482],{},[204,627,629],{"id":628},"_5-流式输出","5. 流式输出",[172,631,633],{"className":426,"code":632,"language":428,"meta":181,"style":181},"import asyncio\nfrom sibuchen_agents import SimpleAgent, SibuchenConfig\n\nasync def main():\n    config = SibuchenConfig()\n    agent = SimpleAgent(config=config)\n\n    async for chunk in agent.run_stream(\"用中文介绍一下量子计算。\"):\n        print(chunk, end=\"\", flush=True)\n\nasyncio.run(main())\n",[179,634,635,639,643,647,651,655,659,663,668,673,677],{"__ignoreMap":181},[216,636,637],{"class":218,"line":219},[216,638,435],{},[216,640,641],{"class":218,"line":247},[216,642,440],{},[216,644,645],{"class":218,"line":257},[216,646,261],{"emptyLinePlaceholder":260},[216,648,649],{"class":218,"line":264},[216,650,449],{},[216,652,653],{"class":218,"line":270},[216,654,518],{},[216,656,657],{"class":218,"line":280},[216,658,459],{},[216,660,661],{"class":218,"line":285},[216,662,261],{"emptyLinePlaceholder":260},[216,664,665],{"class":218,"line":291},[216,666,667],{},"    async for chunk in agent.run_stream(\"用中文介绍一下量子计算。\"):\n",[216,669,670],{"class":218,"line":301},[216,671,672],{},"        print(chunk, end=\"\", flush=True)\n",[216,674,675],{"class":218,"line":306},[216,676,261],{"emptyLinePlaceholder":260},[216,678,679],{"class":218,"line":312},[216,680,482],{},[67,682],{},[70,684,686],{"id":685},"️-项目结构","🗂️ 项目结构",[172,688,691],{"className":689,"code":690,"language":177},[175],"src/sibuchen_agents/\n├── __init__.py                              # 包初始化文件\n├── agents\n│   ├── __init__.py                          # Agent 模块初始化\n│   ├── factory.py                           # Agent 工厂与实例创建逻辑\n│   ├── function_call_agent.py               # 工具调用 Agent\n│   ├── plan_solve_agent.py                  # Plan-and-Solve 范式 Agent\n│   ├── react_agent.py                       # ReAct 范式 Agent\n│   ├── reflection_agent.py                  # Reflection 范式 Agent\n│   ├── simple_agent.py                      # 简单 Agent\n│   └── tool_aware_agent.py                  # 工具感知 Agent\n├── context\n│   ├── __init__.py                          # 上下文模块初始化\n│   ├── builder.py                           # Prompt 上下文构建器\n│   ├── history.py                           # 对话历史管理\n│   ├── token_counter.py                     # Token 统计与计算\n│   └── truncator.py                         # 上下文裁剪与截断\n├── core\n│   ├── __init__.py                          # 核心模块初始化\n│   ├── agent.py                             # Agent 抽象基类定义\n│   ├── config.py                            # 全局配置管理\n│   ├── exceptions.py                        # 自定义异常定义\n│   ├── lifecycle.py                         # Agent 生命周期管理\n│   ├── llm_adapters.py                      # LLM 多模型适配器\n│   ├── llm_client.py                        # LLM 客户端封装\n│   ├── llm_response.py                      # LLM 响应对象定义\n│   ├── message.py                           # 消息结构定义\n│   ├── session_store.py                     # Session 会话存储\n│   └── streaming.py                         # 流式输出处理\n├── memory\n│   ├── __init__.py                          # Memory 模块初始化\n│   ├── base.py                              # Memory 抽象基类\n│   ├── embedding.py                         # 向量 Embedding 处理\n│   ├── manager.py                           # Memory 管理器\n│   ├── rag\n│   │   ├── __init__.py                      # RAG 模块初始化\n│   │   ├── document.py                      # RAG 文档对象定义\n│   │   └── pipeline.py                      # RAG 检索生成流水线\n│   ├── storage\n│   │   ├── __init__.py                      # 存储层初始化\n│   │   ├── document_store.py                # 文档存储实现\n│   │   ├── neo4j_store.py                   # Neo4j 图数据库存储\n│   │   └── qdrant_store.py                  # Qdrant 向量数据库存储\n│   └── types\n│       ├── __init__.py                      # Memory 类型初始化\n│       ├── core_memory.py                   # 核心记忆结构\n│       ├── long_term_memory.py              # 长期记忆实现\n│       ├── multimodal_memory.py             # 多模态记忆实现\n│       └── short_term_memory.py             # 短期记忆实现\n├── observability\n│   ├── __init__.py                          # 可观测性模块初始化\n│   └── trace_logger.py                      # Trace 链路日志记录\n├── protocols\n│   ├── __init__.py                          # 协议模块初始化\n│   ├── a2a\n│   │   ├── __init__.py                      # A2A 协议初始化\n│   │   └── implementation.py                # A2A 协议实现\n│   ├── anp\n│   │   ├── __init__.py                      # ANP 协议初始化\n│   │   └── implementation.py                # ANP 协议实现\n│   ├── base.py                              # 协议抽象基类\n│   ├── im\n│   │   ├── __init__.py                      # IM 协议初始化\n│   │   ├── adapters                         # IM 平台适配器目录\n│   │   │   ├── __init__.py                  # IM Adapter 模块初始化\n│   │   │   ├── feishu_adapter.py            # 飞书 IM 平台适配器\n│   │   │   ├── telegram_adapter.py          # Telegram IM 平台适配器\n│   │   │   └── *.py                         # 自定义 IM 平台适配器\n│   │   ├── plugin.py                        # IM 插件机制\n│   │   ├── rate_limiter.py                  # 消息限流控制\n│   │   ├── server.py                        # IM 服务端实现\n│   │   └── session_manager.py               # IM 会话管理\n│   └── mcp\n│       ├── __init__.py                      # MCP 协议初始化\n│       ├── client.py                        # MCP Client 实现\n│       ├── server.py                        # MCP Server 实现\n│       └── utils.py                         # MCP 工具函数\n├── skills\n│   ├── __init__.py                          # Skills 模块初始化\n│   └── loader.py                            # Skills 动态加载器\n├── tools\n│   ├── __init__.py                          # Tools 模块初始化\n│   ├── base.py                              # Tool 抽象基类\n│   ├── builtin\n│   │   ├── __init__.py                      # 内置工具初始化\n│   │   ├── calculator_tool.py               # 计算器工具\n│   │   ├── devlog_tool.py                   # 开发日志工具\n│   │   ├── file_tools.py                    # 文件操作工具集\n│   │   ├── mcp_wrapper_tool.py              # MCP Tool 包装器\n│   │   ├── memory_tool.py                   # Memory 操作工具\n│   │   ├── note_tool.py                     # 笔记管理工具\n│   │   ├── protocol_tools.py                # 协议相关工具\n│   │   ├── rag_tool.py                      # RAG 检索工具\n│   │   ├── search_tool.py                   # 搜索工具\n│   │   ├── skill_tool.py                    # Skill 调用工具\n│   │   ├── task_tool.py                     # 任务管理工具\n│   │   ├── terminal_tool.py                 # 终端执行工具\n│   │   └── todowrite_tool.py                # Todo 写入工具\n│   ├── circuit_breaker.py                   # 熔断器机制实现\n│   ├── errors.py                            # Tool 异常定义\n│   ├── registry.py                          # Tool 注册中心\n│   ├── response.py                          # Tool 响应结构\n│   └── tool_filter.py                       # Tool 权限过滤器\n└── utils\n    ├── __init__.py                          # 工具模块初始化\n    ├── helpers.py                           # 通用辅助函数\n    ├── logging.py                           # 日志封装工具\n    └── serialization.py                     # 序列化与反序列化工具\n",[179,692,690],{"__ignoreMap":181},[67,694],{},[70,696,698],{"id":697},"支持的-agent-范式","🤖 支持的 Agent 范式",[700,701,702,718],"table",{},[703,704,705],"thead",{},[706,707,708,712,715],"tr",{},[709,710,711],"th",{},"Agent",[709,713,714],{},"适用场景",[709,716,717],{},"工具支持",[719,720,721,735,748,760,772,784],"tbody",{},[706,722,723,729,732],{},[724,725,726],"td",{},[179,727,728],{},"SimpleAgent",[724,730,731],{},"通用对话、文本生成",[724,733,734],{},"可选",[706,736,737,742,745],{},[724,738,739],{},[179,740,741],{},"ReActAgent",[724,743,744],{},"需要工具调用的推理任务",[724,746,747],{},"✅",[706,749,750,755,758],{},[724,751,752],{},[179,753,754],{},"FunctionCallAgent",[724,756,757],{},"OpenAI Function Calling 风格",[724,759,747],{},[706,761,762,767,770],{},[724,763,764],{},[179,765,766],{},"ReflectionAgent",[724,768,769],{},"需要自我校正的任务",[724,771,734],{},[706,773,774,779,782],{},[724,775,776],{},[179,777,778],{},"PlanAndSolveAgent",[724,780,781],{},"复杂多步骤规划任务",[724,783,747],{},[706,785,786,791,794],{},[724,787,788],{},[179,789,790],{},"ToolAwareSimpleAgent",[724,792,793],{},"工具感知的增强对话",[724,795,747],{},[67,797],{},[70,799,801],{"id":800},"️-内置工具列表","🛠️ 内置工具列表",[700,803,804,817],{},[703,805,806],{},[706,807,808,811,814],{},[709,809,810],{},"工具",[709,812,813],{},"功能",[709,815,816],{},"可选依赖",[719,818,819,832,849,861,876,891,906,918,930,942,954,966,981],{},[706,820,821,826,829],{},[724,822,823],{},[179,824,825],{},"CalculatorTool",[724,827,828],{},"数学表达式计算",[724,830,831],{},"—",[706,833,834,844,847],{},[724,835,836,839,840,843],{},[179,837,838],{},"FileReadTool"," / ",[179,841,842],{},"FileWriteTool"," / ...",[724,845,846],{},"文件读写、目录操作、代码搜索",[724,848,831],{},[706,850,851,856,859],{},[724,852,853],{},[179,854,855],{},"TerminalTool",[724,857,858],{},"执行系统终端命令",[724,860,831],{},[706,862,863,868,871],{},[724,864,865],{},[179,866,867],{},"SearchTool",[724,869,870],{},"多引擎搜索（Tavily/SerpApi/DuckDuckGo）",[724,872,873],{},[179,874,875],{},"[search]",[706,877,878,883,886],{},[724,879,880],{},[179,881,882],{},"RAGTool",[724,884,885],{},"文档检索增强生成",[724,887,888],{},[179,889,890],{},"[rag]",[706,892,893,898,901],{},[724,894,895],{},[179,896,897],{},"MemoryTool",[724,899,900],{},"向量/图谱记忆存储与检索",[724,902,903],{},[179,904,905],{},"[memory]",[706,907,908,913,916],{},[724,909,910],{},[179,911,912],{},"NoteTool",[724,914,915],{},"持久化笔记管理",[724,917,831],{},[706,919,920,925,928],{},[724,921,922],{},[179,923,924],{},"TaskTool",[724,926,927],{},"任务拆解与进度追踪",[724,929,831],{},[706,931,932,937,940],{},[724,933,934],{},[179,935,936],{},"TodoWriteTool",[724,938,939],{},"待办事项管理",[724,941,831],{},[706,943,944,949,952],{},[724,945,946],{},[179,947,948],{},"DevLogTool",[724,950,951],{},"开发日志记录",[724,953,831],{},[706,955,956,961,964],{},[724,957,958],{},[179,959,960],{},"SkillTool",[724,962,963],{},"外部 Skill 文件加载执行",[724,965,831],{},[706,967,968,973,976],{},[724,969,970],{},[179,971,972],{},"MCPWrapperTool",[724,974,975],{},"MCP 工具适配包装",[724,977,978],{},[179,979,980],{},"[protocols]",[706,982,983,988,991],{},[724,984,985],{},[179,986,987],{},"ProtocolTools",[724,989,990],{},"A2A/ANP 协议工具",[724,992,993],{},[179,994,980],{},[67,996],{},[70,998,1000],{"id":999},"多-llm-后端支持","🔌 多 LLM 后端支持",[172,1002,1004],{"className":426,"code":1003,"language":428,"meta":181,"style":181},"from sibuchen_agents import SibuchenConfig\n\n# OpenAI\nconfig = SibuchenConfig(\n    llm_base_url=\"https://api.openai.com/v1\",\n    llm_api_key=\"sk-...\",\n    llm_model_id=\"gpt-4o\"\n)\n\n# Google Gemini（通过 google-genai SDK）\nconfig = SibuchenConfig(\n    llm_api_key=\"AIza...\",\n    llm_model_id=\"gemini-2.0-flash\"\n)\n\n# DashScope\nconfig = SibuchenConfig(\n    llm_base_url=\"https://dashscope.aliyuncs.com/compatible-mode/v1\",\n    llm_api_key=\"sk-...\",\n    llm_model_id=\"qwen-max\"\n)\n\n# 任意 OpenAI 兼容接口（Ollama、LM Studio 等）\nconfig = SibuchenConfig(\n    llm_base_url=\"http://localhost:11434/v1\",\n    llm_api_key=\"ollama\",\n    llm_model_id=\"llama3.2\"\n)\n",[179,1005,1006,1011,1015,1020,1025,1030,1035,1040,1045,1049,1054,1058,1063,1068,1072,1076,1081,1085,1091,1096,1102,1107,1112,1118,1123,1129,1135,1141],{"__ignoreMap":181},[216,1007,1008],{"class":218,"line":219},[216,1009,1010],{},"from sibuchen_agents import SibuchenConfig\n",[216,1012,1013],{"class":218,"line":247},[216,1014,261],{"emptyLinePlaceholder":260},[216,1016,1017],{"class":218,"line":257},[216,1018,1019],{},"# OpenAI\n",[216,1021,1022],{"class":218,"line":264},[216,1023,1024],{},"config = SibuchenConfig(\n",[216,1026,1027],{"class":218,"line":270},[216,1028,1029],{},"    llm_base_url=\"https://api.openai.com/v1\",\n",[216,1031,1032],{"class":218,"line":280},[216,1033,1034],{},"    llm_api_key=\"sk-...\",\n",[216,1036,1037],{"class":218,"line":285},[216,1038,1039],{},"    llm_model_id=\"gpt-4o\"\n",[216,1041,1042],{"class":218,"line":291},[216,1043,1044],{},")\n",[216,1046,1047],{"class":218,"line":301},[216,1048,261],{"emptyLinePlaceholder":260},[216,1050,1051],{"class":218,"line":306},[216,1052,1053],{},"# Google Gemini（通过 google-genai SDK）\n",[216,1055,1056],{"class":218,"line":312},[216,1057,1024],{},[216,1059,1060],{"class":218,"line":322},[216,1061,1062],{},"    llm_api_key=\"AIza...\",\n",[216,1064,1065],{"class":218,"line":327},[216,1066,1067],{},"    llm_model_id=\"gemini-2.0-flash\"\n",[216,1069,1070],{"class":218,"line":333},[216,1071,1044],{},[216,1073,1074],{"class":218,"line":343},[216,1075,261],{"emptyLinePlaceholder":260},[216,1077,1078],{"class":218,"line":348},[216,1079,1080],{},"# DashScope\n",[216,1082,1083],{"class":218,"line":354},[216,1084,1024],{},[216,1086,1088],{"class":218,"line":1087},18,[216,1089,1090],{},"    llm_base_url=\"https://dashscope.aliyuncs.com/compatible-mode/v1\",\n",[216,1092,1094],{"class":218,"line":1093},19,[216,1095,1034],{},[216,1097,1099],{"class":218,"line":1098},20,[216,1100,1101],{},"    llm_model_id=\"qwen-max\"\n",[216,1103,1105],{"class":218,"line":1104},21,[216,1106,1044],{},[216,1108,1110],{"class":218,"line":1109},22,[216,1111,261],{"emptyLinePlaceholder":260},[216,1113,1115],{"class":218,"line":1114},23,[216,1116,1117],{},"# 任意 OpenAI 兼容接口（Ollama、LM Studio 等）\n",[216,1119,1121],{"class":218,"line":1120},24,[216,1122,1024],{},[216,1124,1126],{"class":218,"line":1125},25,[216,1127,1128],{},"    llm_base_url=\"http://localhost:11434/v1\",\n",[216,1130,1132],{"class":218,"line":1131},26,[216,1133,1134],{},"    llm_api_key=\"ollama\",\n",[216,1136,1138],{"class":218,"line":1137},27,[216,1139,1140],{},"    llm_model_id=\"llama3.2\"\n",[216,1142,1144],{"class":218,"line":1143},28,[216,1145,1044],{},[67,1147],{},[70,1149,1151],{"id":1150},"协议支持","🔗 协议支持",[204,1153,1155],{"id":1154},"mcpmodel-context-protocol","MCP（Model Context Protocol）",[172,1157,1159],{"className":426,"code":1158,"language":428,"meta":181,"style":181},"from sibuchen_agents.protocols.mcp import MCPClient\n\nasync with MCPClient(server_url=\"http://localhost:8000/mcp\") as client:\n    tools = await client.list_tools()\n    result = await client.call_tool(\"tool_name\", {\"param\": \"value\"})\n",[179,1160,1161,1166,1170,1175,1180],{"__ignoreMap":181},[216,1162,1163],{"class":218,"line":219},[216,1164,1165],{},"from sibuchen_agents.protocols.mcp import MCPClient\n",[216,1167,1168],{"class":218,"line":247},[216,1169,261],{"emptyLinePlaceholder":260},[216,1171,1172],{"class":218,"line":257},[216,1173,1174],{},"async with MCPClient(server_url=\"http://localhost:8000/mcp\") as client:\n",[216,1176,1177],{"class":218,"line":264},[216,1178,1179],{},"    tools = await client.list_tools()\n",[216,1181,1182],{"class":218,"line":270},[216,1183,1184],{},"    result = await client.call_tool(\"tool_name\", {\"param\": \"value\"})\n",[204,1186,1188],{"id":1187},"a2aagent-to-agent","A2A（Agent-to-Agent）",[172,1190,1192],{"className":426,"code":1191,"language":428,"meta":181,"style":181},"from sibuchen_agents.protocols.a2a import A2AClient\n\nclient = A2AClient(agent_url=\"http://localhost:9000\")\nresponse = await client.send_task(\"帮我分析这段数据...\")\n",[179,1193,1194,1199,1203,1208],{"__ignoreMap":181},[216,1195,1196],{"class":218,"line":219},[216,1197,1198],{},"from sibuchen_agents.protocols.a2a import A2AClient\n",[216,1200,1201],{"class":218,"line":247},[216,1202,261],{"emptyLinePlaceholder":260},[216,1204,1205],{"class":218,"line":257},[216,1206,1207],{},"client = A2AClient(agent_url=\"http://localhost:9000\")\n",[216,1209,1210],{"class":218,"line":264},[216,1211,1212],{},"response = await client.send_task(\"帮我分析这段数据...\")\n",[67,1214],{},[70,1216,1218],{"id":1217},"即时通讯im","💬 即时通讯（IM）",[14,1220,1221,1222,1227],{},"基于 ",[23,1223,1226],{"href":1224,"rel":1225},"https://nonebot.dev/",[27],"NoneBot2","，支持 Telegram 和飞书（Feishu）接入：",[172,1229,1231],{"className":400,"code":1230,"language":402,"meta":181,"style":181},"# .env\nIM_ENABLED=true\nIM_AGENT_TYPE=function_call\nIM_SESSION_ISOLATION=true\nTELEGRAM_BOT_TOKEN=your_token\n",[179,1232,1233,1238,1243,1248,1253],{"__ignoreMap":181},[216,1234,1235],{"class":218,"line":219},[216,1236,1237],{},"# .env\n",[216,1239,1240],{"class":218,"line":247},[216,1241,1242],{},"IM_ENABLED=true\n",[216,1244,1245],{"class":218,"line":257},[216,1246,1247],{},"IM_AGENT_TYPE=function_call\n",[216,1249,1250],{"class":218,"line":264},[216,1251,1252],{},"IM_SESSION_ISOLATION=true\n",[216,1254,1255],{"class":218,"line":270},[216,1256,1257],{},"TELEGRAM_BOT_TOKEN=your_token\n",[14,1259,1260],{},"安装并启动：",[172,1262,1264],{"className":210,"code":1263,"language":212,"meta":181,"style":181},"pip install \"sibuchen-agents[im]\"\npython -m sibuchen_agents.protocols.im.server\n",[179,1265,1266,1274],{"__ignoreMap":181},[216,1267,1268,1270,1272],{"class":218,"line":219},[216,1269,223],{"class":222},[216,1271,227],{"class":226},[216,1273,340],{"class":226},[216,1275,1276,1278,1282],{"class":218,"line":247},[216,1277,428],{"class":222},[216,1279,1281],{"class":1280},"sj4cs"," -m",[216,1283,1284],{"class":226}," sibuchen_agents.protocols.im.server\n",[67,1286],{},[70,1288,1289],{"id":139},"📊 可观测性",[14,1291,1292],{},"每次 Agent 运行自动生成 Trace 记录：",[172,1294,1296],{"className":400,"code":1295,"language":402,"meta":181,"style":181},"TRACE_ENABLED=True\nTRACE_DIR=output/memory/traces\n",[179,1297,1298,1303],{"__ignoreMap":181},[216,1299,1300],{"class":218,"line":219},[216,1301,1302],{},"TRACE_ENABLED=True\n",[216,1304,1305],{"class":218,"line":247},[216,1306,1307],{},"TRACE_DIR=output/memory/traces\n",[14,1309,1310],{},"Trace 文件以 JSON 和 HTML 格式保存，完整记录每步的输入、输出、工具调用与耗时。",[67,1312],{},[70,1314,1316],{"id":1315},"️-配置参考","⚙️ 配置参考",[14,1318,1319,1320,1324,1325,1328],{},"完整配置项见 ",[23,1321,1322],{"href":377},[179,1323,377],{},"，支持通过环境变量或 ",[179,1326,1327],{},".env"," 文件配置。主要分组：",[700,1330,1331,1341],{},[703,1332,1333],{},[706,1334,1335,1338],{},[709,1336,1337],{},"分组",[709,1339,1340],{},"说明",[719,1342,1343,1353,1363,1373,1383,1393,1409,1419,1435],{},[706,1344,1345,1350],{},[724,1346,1347],{},[179,1348,1349],{},"LLM_*",[724,1351,1352],{},"主 LLM 服务配置",[706,1354,1355,1360],{},[724,1356,1357],{},[179,1358,1359],{},"SUMMARY_LLM_*",[724,1361,1362],{},"摘要专用 LLM 配置",[706,1364,1365,1370],{},[724,1366,1367],{},[179,1368,1369],{},"CONTEXT_*",[724,1371,1372],{},"上下文压缩配置",[706,1374,1375,1380],{},[724,1376,1377],{},[179,1378,1379],{},"TRACE_*",[724,1381,1382],{},"可观测性配置",[706,1384,1385,1390],{},[724,1386,1387],{},[179,1388,1389],{},"SESSION_*",[724,1391,1392],{},"会话持久化配置",[706,1394,1395,1406],{},[724,1396,1397,839,1400,839,1403],{},[179,1398,1399],{},"MEMORY_*",[179,1401,1402],{},"QDRANT_*",[179,1404,1405],{},"NEO4J_*",[724,1407,1408],{},"记忆系统配置",[706,1410,1411,1416],{},[724,1412,1413],{},[179,1414,1415],{},"EMBED_*",[724,1417,1418],{},"嵌入模型配置",[706,1420,1421,1432],{},[724,1422,1423,839,1426,839,1429],{},[179,1424,1425],{},"IM_*",[179,1427,1428],{},"TELEGRAM_*",[179,1430,1431],{},"FEISHU_*",[724,1433,1434],{},"即时通讯配置",[706,1436,1437,1442],{},[724,1438,1439],{},[179,1440,1441],{},"SUBAGENT_*",[724,1443,1444],{},"子代理配置",[67,1446],{},[70,1448,1450],{"id":1449},"开发与测试","🧪 开发与测试",[172,1452,1454],{"className":210,"code":1453,"language":212,"meta":181,"style":181},"# 克隆仓库\ngit clone https://github.com/sibuchen/sibuchen-agents.git\ncd sibuchen-agents\n\n# 安装开发依赖\npip install -e \".[dev]\"\n\n# 运行测试\npytest\n\n# 代码格式化\nblack src/\nruff check src/\n",[179,1455,1456,1461,1472,1479,1483,1488,1500,1504,1509,1514,1518,1523,1531],{"__ignoreMap":181},[216,1457,1458],{"class":218,"line":219},[216,1459,1460],{"class":243},"# 克隆仓库\n",[216,1462,1463,1466,1469],{"class":218,"line":247},[216,1464,1465],{"class":222},"git",[216,1467,1468],{"class":226}," clone",[216,1470,1471],{"class":226}," https://github.com/sibuchen/sibuchen-agents.git\n",[216,1473,1474,1477],{"class":218,"line":257},[216,1475,1476],{"class":1280},"cd",[216,1478,230],{"class":226},[216,1480,1481],{"class":218,"line":264},[216,1482,261],{"emptyLinePlaceholder":260},[216,1484,1485],{"class":218,"line":270},[216,1486,1487],{"class":243},"# 安装开发依赖\n",[216,1489,1490,1492,1494,1497],{"class":218,"line":280},[216,1491,223],{"class":222},[216,1493,227],{"class":226},[216,1495,1496],{"class":1280}," -e",[216,1498,1499],{"class":226}," \".[dev]\"\n",[216,1501,1502],{"class":218,"line":285},[216,1503,261],{"emptyLinePlaceholder":260},[216,1505,1506],{"class":218,"line":291},[216,1507,1508],{"class":243},"# 运行测试\n",[216,1510,1511],{"class":218,"line":301},[216,1512,1513],{"class":222},"pytest\n",[216,1515,1516],{"class":218,"line":306},[216,1517,261],{"emptyLinePlaceholder":260},[216,1519,1520],{"class":218,"line":312},[216,1521,1522],{"class":243},"# 代码格式化\n",[216,1524,1525,1528],{"class":218,"line":322},[216,1526,1527],{"class":222},"black",[216,1529,1530],{"class":226}," src/\n",[216,1532,1533,1536,1539],{"class":218,"line":327},[216,1534,1535],{"class":222},"ruff",[216,1537,1538],{"class":226}," check",[216,1540,1530],{"class":226},[67,1542],{},[70,1544,1545],{"id":1545},"项目亮点总结",[700,1547,1548,1558],{},[703,1549,1550],{},[706,1551,1552,1555],{},[709,1553,1554],{},"维度",[709,1556,1557],{},"亮点",[719,1559,1560,1570,1580,1589,1599],{},[706,1561,1562,1567],{},[724,1563,1564],{},[17,1565,1566],{},"架构设计",[724,1568,1569],{},"分层架构 + 依赖注入 + 工厂模式，模块间松耦合",[706,1571,1572,1577],{},[724,1573,1574],{},[17,1575,1576],{},"工程健壮性",[724,1578,1579],{},"工具熔断器防止级联失败、上下文自动压缩防溢出、输出截断保留完整数据",[706,1581,1582,1586],{},[724,1583,1584],{},[17,1585,139],{},[724,1587,1588],{},"全链路 Trace（JSONL + HTML 双格式）、生命周期事件系统、自动脱敏",[706,1590,1591,1596],{},[724,1592,1593],{},[17,1594,1595],{},"可扩展性",[724,1597,1598],{},"工具即插即用、协议适配器可扩展、记忆后端可替换、LLM 适配器自动识别",[706,1600,1601,1606],{},[724,1602,1603],{},[17,1604,1605],{},"生产友好",[724,1607,1608],{},"会话持久化恢复、可选依赖分组、配置中心化管理",[67,1610],{},[70,1612,1614],{"id":1613},"许可证","📄 许可证",[14,1616,1617,1618,1622],{},"本项目采用 ",[23,1619,1621],{"href":44,"rel":1620},[27],"GNU General Public License v3.0"," 开源协议。",[67,1624],{},[70,1626,1628],{"id":1627},"致谢","🙏 致谢",[14,1630,1631],{},"本框架参考并借鉴了以下优秀开源项目的设计理念：",[96,1633,1634,1641,1648,1654],{},[99,1635,1636],{},[23,1637,1640],{"href":1638,"rel":1639},"https://github.com/langchain-ai/langchain",[27],"LangChain",[99,1642,1643],{},[23,1644,1647],{"href":1645,"rel":1646},"https://github.com/huggingface/smolagents",[27],"smolagents",[99,1649,1650],{},[23,1651,1226],{"href":1652,"rel":1653},"https://github.com/nonebot/nonebot2",[27],[99,1655,1656],{},[23,1657,1660],{"href":1658,"rel":1659},"https://modelcontextprotocol.io/",[27],"Model Context Protocol",[67,1662],{},[70,1664,1666,1667],{"id":1665},"源码位置github","源码位置：",[23,1668,1670],{"href":52,"rel":1669},[27],"Github",[1672,1673,1674],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":181,"searchDepth":247,"depth":247,"links":1676},[1677,1678,1679,1680,1684,1691,1692,1693,1694,1695,1699,1700,1701,1702,1703,1704,1705,1706],{"id":72,"depth":247,"text":73},{"id":93,"depth":247,"text":94},{"id":169,"depth":247,"text":170},{"id":201,"depth":247,"text":202,"children":1681},[1682,1683],{"id":206,"depth":257,"text":207},{"id":233,"depth":257,"text":233},{"id":366,"depth":247,"text":367,"children":1685},[1686,1687,1688,1689,1690],{"id":370,"depth":257,"text":371},{"id":422,"depth":257,"text":423},{"id":485,"depth":257,"text":486},{"id":557,"depth":257,"text":558},{"id":628,"depth":257,"text":629},{"id":685,"depth":247,"text":686},{"id":697,"depth":247,"text":698},{"id":800,"depth":247,"text":801},{"id":999,"depth":247,"text":1000},{"id":1150,"depth":247,"text":1151,"children":1696},[1697,1698],{"id":1154,"depth":257,"text":1155},{"id":1187,"depth":257,"text":1188},{"id":1217,"depth":247,"text":1218},{"id":139,"depth":247,"text":1289},{"id":1315,"depth":247,"text":1316},{"id":1449,"depth":247,"text":1450},{"id":1545,"depth":247,"text":1545},{"id":1613,"depth":247,"text":1614},{"id":1627,"depth":247,"text":1628},{"id":1665,"depth":247,"text":1707},"源码位置：Github","agent","2026-05-03","md",null,{},"/labs/sibuchen-agents",{"title":5,"description":76},"ACTIVE","labs/sibuchen-agents",[1718,1719,6],"AIAgent","开源框架","PUFFMQ1qH_ZVhS-TaC1-pF6NQEaaoIUqszcE3UwlOoA",1781104361109]