2.1 KiB
2.1 KiB
LLM-to-Agent 框架知识库
Agent 工具调用流程
Agent 的 run() 方法执行以下循环:
- 将用户消息加入上下文
- 调用 LLM,传入可用工具列表
- 如果 LLM 返回
tool_calls,逐个执行工具,将结果加入上下文,回到步骤 2 - 如果 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 提示词