Files
llama-agent-skills/openspec/changes/add-skill-support/specs/agent-workflow/spec.md
T
Summer Shen 9578366e36 init repo
2026-03-31 09:14:32 +08:00

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 的 namedescriptionbody 内容

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 正常运行,仅进行对话,不进行工具调用