Skip to main content

Agent API

列出 Agent

GET /v1/agents 返回当前 Runtime 已注册的 Agent。调用方应使用返回的稳定 ID 构造 run 路径,而不是依赖显示名称。

获取 Agent 详情

GET /v1/agents/:agentId 返回某个 Agent 的配置层 + 运行时层完整信息:模型、工具、MCP server、实际扫描到的 Skill、Subagent、数据集等,用于运维、调试与控制台展示。
如启用鉴权:

响应(200)

返回 AgentDetail 对象。未配置的字段(allowedToolsmcpServerssubagents 等)不会出现在响应里(不是 null)。 最小配置的响应:
带 Skill 扫描结果的响应:
带 MCP server(已脱敏)的响应:
带 Subagent 的响应——Subagent 只返回 { description },不返回 prompttoolsmodel 等内部字段:
Agent 配置解析失败时(例如 systemPromptFile 找不到文件),status"unavailable",但响应仍是 200 + 完整 AgentDetail,上游据此判断该 Agent 是否可调用:

响应(404)

agentId 不存在时:

AgentDetail 字段

配置层 vs 运行时层:settingSources 是配置(“扫哪里”),availableSkills 是运行时(“扫到了什么”)。后者由 Runtime 在启动时根据前者扫描文件系统得出,反映真实可用的 SKILL.md 清单。
必返回字段: 可选字段(仅在已配置时出现):

Skill 扫描与 SkillSummary

Skill 完全基于文件系统,没有白名单配置。Runtime 启动时按以下顺序扫描目录:
  1. settingSources: ["user"]~/.openagent/skills/ + extraUserSkillDirs
  2. settingSources: ["project"]<cwd>/.openagent/skills/
所有扫描到的 SKILL.md 都会暴露给 Agent,没有过滤。同名 Skill 后扫描到的覆盖先扫描到的(project 覆盖 user)。扫描结果缓存在 availableSkills 字段,重启 Runtime 才会刷新——文件系统变化不会自动反映到详情接口。 availableSkills 数组元素(SkillSummary)的字段:

McpServerSummary 与脱敏策略

所有 MCP server 共有字段: stdio 专属(可选): sse / http 专属(可选):
接口只对 envheaders 的值强制脱敏。argsurl 原样返回,理论上可能携带密钥——args 可能含 --token=xxx 形式的内联密钥,url 可能含 ?token=xxx 查询参数或 https://user:pass@host 内嵌凭证。上游消费方在 UI 或日志展示 MCP server 配置时,对 argsurl 也应保持警惕,不要原样落日志或展示给终端用户。

Subagent 返回范围

每个 Subagent 仅返回 { "description": string }——保留让父 Agent 选择子代理的信息。不返回 prompttoolsdisallowedToolsmodelmcpServersskillsmaxTurns。目前没有查看 Subagent 完整配置的单独端点。

兼容性

新的详情响应是旧响应({ id, status })的严格超集:旧消费者只读 idstatus 两个字段,新增字段不影响其行为。GET /v1/agents(Agent 列表)形态不变,POST /v1/agents/:agentId/runs 行为不变,鉴权机制不变。

认证

若启用 API key,所有 /v1/* 请求都要携带:
GET /health 不需要认证,可用于容器探针。

相关

  • 配置agents.yaml 的字段全集