本示例演示如何把 MagicSkills 的 skill_tool 接入 Haystack agent,并生成两份完整日志:
- log1.json:不停读文档场景(偏知识学习)
- log2.json:执行场景(把 C 代码转换为 AST)
日志会保留 agent 每一步输出(包含中间 tool 调用与最终回答),格式参考 haystack_example/log1.json 与 haystack_example/log2.json。
本示例还展示了 MagicSkills 多 agent 管理的核心特性:为不同 agent 创建独立的 skills 集合,每个 agent 只暴露它所需的工具。
git clone https://github.com/Narwhal-Lab/MagicSkills.git
cd MagicSkills
pip install -e .以下演示两种安装方式,若 skill 已安装可跳过对应命令。
magicskills install skill_template -t ~/allskillsmagicskills install anthropics/skills -t ~/allskills
-t ~/allskills指定安装目录。 说明:如果你只执行方式一的skill_template安装,通常只会得到c_2_ast。而本示例后续还要使用docx,所以如果这两个 skill 还不存在,请执行方式二从anthropics/skills安装。
本示例创建两个 skills 集合,分别对应两个 agent,每个 agent 拥有不同的工具组合:
magicskills addskills haystack_agent1_skills --skill-list c_2_ast pdf --agent-md-path ./AGENTS.md
magicskills addskills haystack_agent2_skills --skill-list c_2_ast docx --agent-md-path ./AGENTS.md- haystack_agent1_skills:
c_2_ast+pdf,用于 log1 场景(知识阅读 agent) - haystack_agent2_skills:
c_2_ast+docx,用于 log2 场景(代码执行 agent)
magicskills syncskills haystack_agent1_skills --output ./AGENTS.md -y确保根目录有 .env(可从 .env.example 复制):
cp .env.example .env并填写:
OPENAI_BASE_URLOPENAI_API_KEYOPENAI_MODEL
pip install -r haystack_example/requirements.txt在项目根目录执行:
python haystack_example/model.py --scenario all可选:只跑单个场景
python haystack_example/model.py --scenario read
python haystack_example/model.py --scenario exec输入 prompt:
我想了解更多 AST 知识。
agent 会依次执行:listskill → readskill(读取 SKILL.md)→ readskill(读取 reference.md),通过多步文档阅读获取 AST 相关知识。
输入 prompt:
请将下面这段 C 代码转换为 AST
```c
#include <stdio.h>
int main() {
puts("Hello from agent");
return 0;
}
```
agent 会依次执行:listskill → readskill(读取 SKILL.md)→ execskill(运行转换脚本),产出 AST 结果。
运行完成后,本目录会生成:
- log1.json
- log2.json
验收时请重点检查:
- log1.json 中是否出现多步文档阅读行为(围绕 AST 相关 skill)
- log2.json 中是否出现执行步骤并产出 AST 结果
- 如果报
skills collection(s) not found:请先按第 4 步执行addskills命令。 - 如果报认证错误:检查
.env中的 key、base_url、model 是否可用。 - 如果报网络错误:确认当前环境可访问配置的模型服务。
- 如果日志为空:重跑命令并查看终端输出中的异常栈信息。