7.2 KiB
7.2 KiB
PaddedCell 需求更新 — ego-mgr & 重命名
版本:v0.2
日期:2026-03-24
状态:待实现
1. 重命名:pass_mgr → secret-mgr
1.1 范围
所有文档、代码、技能引用中的 pass_mgr 统一更名为 secret-mgr:
- 二进制文件名:
pass_mgr→secret-mgr - 命令引用:
pass_mgr <cmd>→secret-mgr <cmd> - 文档:README.md, PROJECT_PLAN.md, SKILL.md 等
- 技能目录:
skills/pass-mgr/→skills/secret-mgr/ - 环境变量:
AGENT_PASS_MGR_*→AGENT_SECRET_MGR_*(如存在)
1.2 命令保持不变
secret-mgr list # List keys for current agent
secret-mgr get-secret --key <key> # Output secret
secret-mgr get-username --key <key> # Output username
secret-mgr set --key <key> --secret <s> [--username <u>] # Set entry
secret-mgr generate --key <key> [--username <u>] # Generate random secret
secret-mgr unset --key <key> # Delete entry
secret-mgr get <key> # Legacy (maps to get-secret)
secret-mgr admin handoff [file] # Export build secret
secret-mgr admin init-from [file] # Re-encrypt data
2. 新增 ego-mgr 二进制(Go)
2.1 功能概述
ego-mgr 管理 Agent 的个人信息(名字、邮箱、出生日期等),支持:
- Agent Scope 字段:每个 Agent 独立存储,值可不同
- Public Scope 字段:全局共用,所有 Agent 共享同一值
2.2 数据存储
- 文件路径:
~/.openclaw/ego.json - 格式:JSON
- Schema:
{
"columns": ["col1", "col2", "..."],
"public-columns": ["pub-col1", "pub-col2", "..."],
"public-scope": {
"pub-col1": "value1",
"pub-col2": "value2"
},
"agent-scope": {
"agent-id-1": {
"col1": "value-x",
"col2": "value-y"
},
"agent-id-2": {
"col1": "value-z"
}
}
}
2.3 命令接口
2.3.0 帮助
ego-mgr --help
输出命令使用说明和示例。
2.3.1 增加字段
# Agent Scope 字段
ego-mgr add column <column-name> [--default <default-value>]
# Public Scope 字段
ego-mgr add public-column <column-name> [--default <default-value>]
--default:可选,设置默认值(不设置则默认为空字符串)- 字段已存在时返回错误
2.3.2 删除字段
ego-mgr delete <column-name>
- 删除指定字段及其所有值(包括
public-scope和所有agent-scope中的值) - 字段不存在时返回错误
2.3.3 设置字段值
ego-mgr set <column-name> <value>
- 字段必须已存在(通过
add column或add public-column创建) - 字段不存在时返回错误
- 根据字段类型自动写入
agent-scope或public-scope
2.3.4 查询字段
# 获取单个字段值
ego-mgr get <column-name>
# 列出所有字段和值(先 Public 后 Agent Scope)
ego-mgr show
# 仅列出字段名(先 Public 后 Agent Scope)
ego-mgr list columns
2.4 输出示例
ego-mgr show
pub-col1: val1
pub-col2: val2
...
col1: valx
col2: valy
ego-mgr list columns
pub-col1
pub-col2
...
col1
col2
ego-mgr get
<value>
(仅输出值,无额外格式)
2.5 安全约束
- 必须由 pcexec 调用:检测到非 pcexec 环境(缺少
AGENT_VERIFY等环境变量)时拒绝执行 - Agent 隔离:Agent 只能读写自己的
agent-scope字段,不能访问其他 Agent 的数据 - Public Scope 读取:所有 Agent 可读取
public-scope
2.6 字段命名规则
- 字符限制:无限制(允许空格、特殊字符)
- 长度限制:无限制
- 大小写:区分大小写
- 唯一性:public-column 和 column 名字不能重复(全局唯一)
2.7 初始化逻辑
ego.json不存在时,由 PaddedCell 安装脚本自动创建空结构:
{
"columns": [],
"public-columns": [],
"public-scope": {},
"agent-scope": {}
}
2.8 并发安全
- 写操作(
add,delete,set)必须使用文件锁,防止多 Agent 并发写入导致数据损坏 - 读操作(
get,show,list columns)无需锁
2.9 Agent 自动注册
- 读/写操作时:如果当前
agent-id不存在于agent-scope中,自动创建空条目:"agent-scope": { "new-agent-id": {} } - 字段验证:如果
column-name不存在于columns或public-columns中,返回错误(退出码 2)
2.10 错误退出码
| 退出码 | 含义 |
|---|---|
| 0 | 成功 |
| 1 | 参数错误 / 用法错误 |
| 2 | 字段不存在(column-name 不在 columns 或 public-columns 中) |
| 3 | 字段已存在 |
| 4 | 权限错误(非 pcexec 环境 / Agent 越权) |
| 5 | 文件锁获取失败 |
| 6 | JSON 解析/写入错误 |
2.11 值的大小限制
- 单字段值长度无限制
3. 新增 ego-mgr Skill
3.1 Skill 路径
~/.openclaw/skills/ego-mgr/SKILL.md
3.2 Skill 功能
- 指导 Agent 正确使用
ego-mgr命令 - 说明字段管理流程(先
add column,再set) - 提供常见用例(设置名字、邮箱、时区等)
3.3 触发条件
- 用户请求管理 Agent 个人信息
- 用户询问 ego-mgr 用法
- 需要存储/读取 Agent 配置信息
4. 依赖关系
+------------------+
| pcexec |
+--------+---------+
|
v
+--------+---------+ +------------------+
| ego-mgr |<----| ~.openclaw/ |
| secret-mgr | | ego.json |
+------------------+ +------------------+
ego-mgr和secret-mgr都必须通过pcexec调用pcexec负责:- 注入环境变量(
AGENT_VERIFY,AGENT_ID,AGENT_WORKSPACE) - 解析并脱敏敏感信息
- 验证执行上下文
- 注入环境变量(
5. 待确认事项
- 字段类型:是否支持字段类型约束(如 email、date、number)?
- 迁移策略:现有
pass_mgr数据如何迁移到secret-mgr?
6. 实现任务清单
M1:重命名 pass_mgr → secret-mgr & 初始化 ego.json
- 重命名二进制文件
- 更新所有文档引用
- 更新 Skill 目录和引用
- 更新 install.mjs 安装脚本
- install.mjs 自动创建空
ego.json结构
M2:实现 ego-mgr 二进制
- 设计 JSON Schema 和文件结构
- 实现
--help - 实现
add column/add public-column - 实现
delete - 实现
set - 实现
get/show/list columns - 实现 pcexec 环境检测
- 实现 Agent 隔离逻辑
- 实现文件锁(并发安全)
- 实现错误退出码
M3:编写 ego-mgr Skill
- 创建
skills/ego-mgr/SKILL.md - 编写使用示例
- 集成到 OpenClaw Skill 系统
M4:集成测试
- 测试 ego-mgr 与 pcexec 集成
- 测试多 Agent 隔离
- 测试 Public/Agent Scope 分离
- 测试边界条件(字段不存在、重复添加等)
7. 验收标准
secret-mgr所有原有功能正常工作,文档更新完成ego-mgr支持完整的 CRUD 操作ego-mgr只能通过pcexec调用- Agent 数据隔离正确,Public Scope 共享正确
- Skill 文档清晰,Agent 能独立使用