ForcePilot/docs/agents/middleware.md
Wenjie Zhang 0fdc0acf91 docs: 清理 0.7 历史遗留内容并优化 README
对照 0.7 BREAKING CHANGE 逐文件复核 docs/,移除/修正已下线功能的描述:

- 移除 LightRAG、独立图谱上传、Ollama、旧版 v1 模型配置等已删除能力的描述
- 知识库类型更新为 Milvus + 只读连接器(Dify、Notion),补全图谱存储链路
  (Neo4j + PostgreSQL + Milvus 语义索引,RRF 融合)
- 补全知识库工具集(find_kb_document/open_kb_document),修正 Skills 沙盒路径
  为 /home/gem/skills、中间件目录为 agents/middlewares、评估入口为侧边栏 tab
- 知识库权限三档修正为 全局共享/部门共享/指定人可访问
- 下载版本统一为 0.7.0.dev0
- README 新增简介、技术栈与 0.7 动态,特性描述细化

经核实保留 Neo4j(仍用于 Milvus 知识库内图谱)与 MCP enabled 机制(仍在用),
未误删。vitepress build 验证通过。
2026-06-03 17:55:10 +08:00

45 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 中间件系统
中间件是扩展智能体行为的重要机制。系统基于 LangChain 1.0 的中间件标准,支持在关键节点插入自定义逻辑。
## 核心中间件
### RuntimeConfigMiddleware
这是系统的默认中间件,负责在每次模型调用前注入运行时配置:
- 自动注入当前时间到系统提示词
- 根据配置动态加载工具列表
- 处理模型选择和加载
### inject_attachment_context
支持文件上传功能的中间件。如果智能体需要处理用户上传的文档,可以启用此中间件:
```python
from yuxi.agents.middlewares import inject_attachment_context
async def get_graph(self):
graph = create_agent(
model=load_chat_model("..."),
tools=tools,
middleware=[
inject_attachment_context, # 启用附件处理
context_aware_prompt, # 其他中间件
],
checkpointer=await self._get_checkpointer(),
)
return graph
```
### 启用文件上传
启用文件上传能力需要两步:
1. 在智能体类中声明 `capabilities = ["file_upload"]`
2. 添加上述中间件
## 自定义中间件
新增中间件时,将其放入 `backend/package/yuxi/agents/middlewares` 目录,然后在智能体的 `middleware` 列表中引用即可。该目录下已内置知识库挂载(`knowledge_base`、Skills 注入(`skills`)、附件上下文(`attachment`)、子智能体任务(`subagent_task`)、上下文压缩(`summary`)、动态工具(`dynamic_tool`)等中间件。