61 lines
2.1 KiB
Markdown
61 lines
2.1 KiB
Markdown
# LLM-to-Agent 框架知识库
|
||
|
||
## Agent 工具调用流程
|
||
|
||
Agent 的 `run()` 方法执行以下循环:
|
||
1. 将用户消息加入上下文
|
||
2. 调用 LLM,传入可用工具列表
|
||
3. 如果 LLM 返回 `tool_calls`,逐个执行工具,将结果加入上下文,回到步骤 2
|
||
4. 如果 LLM 直接返回文本,结束循环,返回最终回复
|
||
|
||
工具定义需包含 `name`、`description`、`parameters`(JSON Schema)和 `execute` 函数。
|
||
|
||
## 子 Agent 管理
|
||
|
||
通过 `spawn_agent` 工具可以创建具有独立人设的子 Agent(如销售、顾客)。
|
||
每个子 Agent 拥有独立的上下文和基础工具集(不含 sub-agent 管理工具,防止无限递归)。
|
||
通过 `run_conversation` 工具可以在两个子 Agent 之间运行多轮对话。
|
||
|
||
## 知识库功能
|
||
|
||
知识库位于 `knowledge/` 目录,支持 `.md` 格式文档。
|
||
文档按 `##` 二级标题自动分块,通过 `search_knowledge` 工具进行关键词检索。
|
||
检索算法基于关键词命中次数,标题命中加权 ×3。
|
||
也提供 `list_knowledge` 工具查看知识库全貌。
|
||
|
||
## 常用命令
|
||
|
||
- 启动框架:`pnpm dev`
|
||
- 指定提示词模式:`pnpm dev orchestrator`
|
||
- 可用模式:`default`、`toxic`、`json`、`agent`、`reAct`、`orchestrator`
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
src/
|
||
index.ts -- CLI 入口
|
||
llm.ts -- LLM 客户端(OpenAI 兼容)
|
||
context.ts -- 上下文管理器
|
||
types/index.ts -- 类型定义
|
||
agents/
|
||
agent.ts -- Agent 核心类
|
||
manager.ts -- 子 Agent 管理器
|
||
tools.ts -- spawn_agent / run_conversation 工具
|
||
tools/
|
||
registry.ts -- 工具注册表
|
||
weather.ts -- 天气查询工具
|
||
calculator.ts -- 计算器工具
|
||
guess.ts -- 猜数字游戏工具
|
||
knowledge/
|
||
knowledge-base.ts -- 知识库类
|
||
search-tool.ts -- 知识库搜索工具
|
||
hooks/
|
||
index.ts -- Hook 总线
|
||
log.hooks.ts -- 日志 Hook
|
||
registry.ts -- Hook 注册
|
||
prompts/
|
||
system.ts -- 系统提示词
|
||
orchestrator.ts -- Orchestrator 提示词
|
||
reAct.ts -- ReAct 提示词
|
||
```
|