Deep Agents集成skills / ai #60

in HIVE CN 中文社区18 days ago (edited)

在 Deep Agents 中引入 Anthropic Skills 非常简单,因为 Deep Agents 原生支持 Agent Skills 规范(由 Anthropic 提出并开源的标准)。你不需要任何适配层,直接把符合规范的 Skill 目录传给 create_deep_agent 即可。

skills3.jpg
DeepAgent集成skills

集成skills

my_project/
└── skillsRepo
    └── skills/
        └── pptx/
            ├── SKILL.md    # 技能的核心说明与工作流定义
            └── scripts     # 该技能配套使用的辅助脚本
└── main.py 

from dotenv import dotenv_values
from langchain_openai import ChatOpenAI
from deepagents import create_deep_agent
from deepagents.backends.filesystem import FilesystemBackend

env_vars = dotenv_values('.env')
OPENAI_KEY = env_vars['OPENAI_API_KEY'] 
OPENAI_BASE_URL = env_vars['OPENAI_API_BASE'] 

llm = ChatOpenAI(model="gpt-5.4-mini", api_key=OPENAI_KEY, base_url=OPENAI_BASE_URL)
# 创建后端(从本地文件系统加载 skills)
backend = FilesystemBackend(root_dir="./skillsRepo") 
agent = create_deep_agent(model=llm, backend=backend, skills=["./skills"]) 
# 指向skills目录,或直接指定 ./skills/pptx 

result = agent.invoke({"messages": [{"role": "user", "content": "有哪些skills"}]})
print(111, result["messages"][-1].content)

文件权限

from deepagents import create_deep_agent, FilesystemPermission
from deepagents.backends.filesystem import FilesystemBackend

backend = FilesystemBackend(root_dir="./skillsRepo")
agent = create_deep_agent(
    model=llm, 
    backend=backend, 
    skills=["./skills/frontend-design"],
    permissions=[
        FilesystemPermission(
            operations=["write"],           # 限制的操作类型
            paths=["/skills/**"],           # 限制的路径模式
            mode="deny",                    # 模式:deny(禁止)/ interrupt(审批)
        ),
        FilesystemPermission(
            operations=["write"],
            paths=["/output/**"],
            mode="allow",                   # 允许写入 output 目录
        ),
    ]
)