2.2 KiB
2.2 KiB
ADDED Requirements
Requirement: Agent 构建与 SKILL 注入
系统 SHALL 提供一个 Agent 构建函数/类,接受 SKILL 列表和 LLM 配置,创建一个集成了 SKILL 上下文的 LlamaIndex AgentWorkflow。
Scenario: 使用 SKILL 列表创建 Agent
- WHEN 调用 Agent 构建函数,传入一个包含 2 个 Skill 实例的列表和 LLM 配置
- THEN 创建的 AgentWorkflow 的 system prompt 中包含这 2 个 Skill 的
name、description和body内容
Scenario: 无 SKILL 创建 Agent
- WHEN 调用 Agent 构建函数,传入空的 SKILL 列表
- THEN 创建的 AgentWorkflow 仅包含基础 system prompt,不含任何 SKILL 上下文
Requirement: System Prompt 组装
系统 SHALL 按照固定格式将多个 SKILL 的内容组装到 system prompt 中,每个 SKILL 之间用分隔符隔开。
Scenario: 多 SKILL 的 prompt 格式
- WHEN 注入 2 个名为 "skill-a" 和 "skill-b" 的 SKILL
- THEN 生成的 system prompt 依次包含基础 prompt、"## Active Skills" 标题、每个 SKILL 的 "### Skill: {name}" 标题及其 body 内容,SKILL 之间用
---分隔
Scenario: SKILL 顺序保持一致
- WHEN 按 ["skill-b", "skill-a"] 顺序注入 SKILL
- THEN system prompt 中 skill-b 的内容出现在 skill-a 之前
Requirement: Agent 对话执行
系统 SHALL 提供运行 Agent 的能力,接受用户输入并返回 LLM 响应。
Scenario: 单轮对话
- WHEN 向 Agent 发送一条用户消息
- THEN Agent 调用 LLM 并返回文本响应
Scenario: 带工具的对话
- WHEN Agent 配置了工具函数,且用户消息触发了工具调用
- THEN Agent 执行工具调用并将结果整合到最终响应中
Requirement: 工具注册
系统 SHALL 支持在创建 Agent 时注册 Python 可调用函数作为工具。
Scenario: 注册 Python 函数为工具
- WHEN 传入一个带 docstring 的 Python 函数到 Agent 构建函数的
tools参数 - THEN 该函数被注册为 LlamaIndex 工具,Agent 可在对话中调用它
Scenario: 无工具的 Agent
- WHEN 创建 Agent 时不传入任何工具
- THEN Agent 正常运行,仅进行对话,不进行工具调用