Agent Profile
Agent Profile 描述一个编码 Agent 如何展示、选择、授权并连接到 runtime adapter。它是产品 UX 与执行细节之间的桥梁。
Profile 模型
一个有用的 profile 应回答五个问题:
| 问题 | 示例 |
|---|---|
| 这个 Agent 是谁? | Codex Local、Claude Code Review、Mock Writer |
| 它能做什么? | 读文件、提出 diff、运行命令、生成 artifact |
| 它在哪里运行? | Local Edge、授权 Remote Edge 或 Hub-routed target |
| 什么需要 approval? | 写入、shell 命令、外部网络、发布动作 |
| 哪个 adapter 负责执行? | mock、claude-code、codex、opencode 或 custom |
Profile 应小而可审查,脱敏后可安全分享。它不应包含真实 provider key、私有路径或生产主机细节。
公开安全示例
公开文档可以使用这种结构示例:
{
"id": "codex-local-review",
"label": "Codex Local Review",
"adapter": "codex",
"target": "local-edge",
"workspacePolicy": "allowlist",
"capabilities": ["read", "diff", "explain", "shell-request"],
"approval": {
"write": "ask",
"shell": "ask",
"publish": "deny"
},
"events": ["run.message.delta", "run.tool.call", "run.diff.ready", "run.approval.requested", "run.completed"]
}
真实实现的文件名、存储或 registry API 可能随 AgentHub 收敛而变化。应保持稳定的是:profile metadata、runtime adapter 执行、workspace policy 与 approval policy 之间彼此分离。
Capability 词汇
推荐 capability 词汇:
| Capability | 含义 |
|---|---|
read | 可以检查 allowlist 内文件 |
diff | 可以提出可审查 diff |
write-request | 可以请求文件写入,但不能静默 apply |
shell-request | 可以通过 approval 请求 shell 命令 |
artifact | 可以生成日志、preview、summary 或文件 |
review | 可以评论 diff 或文档 |
publish | 可以请求 PR、tag、deploy 或 release 动作 |
避免 admin、full-access、auto 这类模糊标签。如果 profile 需要较大权限,应明确描述具体权限并增加 review gate。
选择规则
AgentHub 应通过明确用户或策略选择 profile:
- 用户选择 workspace 或 project。
- Hub 或 Desktop 列出该上下文允许的 profile。
- 用户选择 Agent Profile 或接受安全默认项。
- Edge 校验 adapter、workspace allowlist 和 runtime 可用性。
- Run event 记录使用了哪个 profile 和 adapter。
不要让 Web client 在 Hub 授权之外静默选择本地 runtime。不要让飞书/Lark 消息在 TokenDance ID 绑定和产品授权完成解析前路由到 Edge。
Approval Policy
Profile 应用清晰语言声明 approval 行为:
| 动作 | 更安全默认值 |
|---|---|
| 读取 allowlist 内文件 | allow |
| 生成 diff | allow |
| 应用文件写入 | ask |
| 运行 shell 命令 | ask |
| 访问网络 | ask 或 deny |
| 发布 PR/tag/deploy | ask 或 deny |
| 读取 workspace 外文件 | deny |
UI 应在 approval request 里提供足够上下文:动作、目标、原因、风险和预期输出。
Runtime Adapter 边界
Profile 不是 adapter。Adapter 负责进程执行和 event 归一化;profile 负责产品侧身份和策略。职责应分开:
| Owner | 职责 |
|---|---|
| Profile | Label、icon、capability、policy、默认 target |
| Adapter | CLI/process 调用、stream parsing、timeout、cancellation、event mapping |
| Edge | Workspace allowlist、run lifecycle、approval enforcement、artifact |
| Hub | User session、project membership、routing、audit |
状态
Runtime adapter 方向为契约已定。Claude Code、Codex、OpenCode、mock 和 custom runtime 路径可以在实现中存在,但稳定公开第三方 SDK 和提交流程仍在开发中。