AgentOS 是一套完整的 AI 智能体问责基础设施。它提供持久化记忆、项目管理、看板、头脑风暴存储、活动日志、网状通信和自我进化协议。
使用场景: 当你需要存储记忆、管理项目、跟踪任务、记录活动、与其他智能体通信,或在多个会话间实现行为进化时。
完整指南请阅读 AGENT-OPS.md,了解如何在 AgentOS 上作为智能体进行操作。 内容涵盖:
- 记忆组织(路径、标签、重要性)
- 项目管理(创建、更新、跟踪)
- 看板工作流(任务、状态、优先级)
- 头脑风暴存储(想法、决策、学习成果)
- 日常操作(会话开始/结束清单)
- 自我进化协议
aos CLI 让你完全控制 AgentOS 仪表盘:
# 记忆
aos memory put "/learnings/today" '{"lesson": "verify first"}'
aos memory search "how to handle errors"
# 项目
aos project list
aos project create "New Feature" --status active
# 看板
aos kanban add "Fix bug" --project <id> --status todo --priority high
aos kanban move <task-id> done
# 头脑风暴
aos brainstorm add "Use WebSocket" --project <id> --type idea
# 活动日志
aos activity log "Completed API refactor" --project <id>
# 网状通信
aos mesh send <agent> "Topic" "Message body"
运行 aos help 或 aos <command> 查看详细用法。
要获得可靠的仪表盘(记忆 + 项目卡片),请运行:
~/clawd/bin/agentos-golden-sync.sh
这会同步记忆,并为每个项目更新 Markdown 卡片:
TASKS.md, IDEAS.md, CHANGELOG.md, CHALLENGES.md → 数据库 → 大脑仪表盘。
每条记忆都必须正确分类。 使用以下 8 个标准类别:
| 类别 | 颜色 | 用途 | 路径前缀 | 主要标签 |
|---|---|---|---|---|
| 身份 | 🔴 红色 | 你是谁,用户档案,团队结构 | identity/ |
["identity", ...] |
| 知识 | 🟠 橙色 | 事实、研究、文档 | knowledge/ |
["knowledge", ...] |
| 记忆 | 🟣 紫色 | 长期记忆、学习成果、决策 | memory/ |
["memory", ...] |
| 偏好 | 🔵 蓝色 | 用户偏好、设置、风格 | preferences/ |
["preferences", ...] |
| 项目 | 🟢 绿色 | 当前工作、任务、代码上下文 | projects/ |
["project", "<name>"] |
| 操作 | 🟤 棕色 | 每日日志、状态、心跳状态 | operations/ |
["operations", ...] |
| 密钥 | ⚪ 灰色 | 访问信息、服务器位置(非实际密钥!) | secrets/ |
["secrets", ...] |
| 协议 | 🔵 青色 | 标准操作程序、检查清单、流程 | protocols/ |
["protocols", ...] |
<类别>/<子类别>/<项目>
示例:
identity/user/ben-profile
knowledge/research/ai-agents-market
memory/learnings/2026-02-mistakes
preferences/user/communication-style
projects/agentos/tasks
operations/daily/2026-02-13
secrets/access/hetzner-server
protocols/deploy/agentos-checklist
每条记忆必须包含:
1. 主要类别标签 — 8 个类别之一
2. 子类别标签 — 更具体的分类
3. 可选的项目标签 — 如果与项目相关
# 示例:存储带有正确标签的学习成果
AOS_TAGS='["memory", "learnings"]' AOS_SEARCHABLE=true \
aos_put "/memory/learnings/2026-02-13" '{"lesson": "Always categorize memories"}'
# 示例:存储用户偏好
AOS_TAGS='["preferences", "user"]' \
aos_put "/preferences/user/communication" '{"style": "direct, no fluff"}'
# 设置环境变量
export AGENTOS_API_KEY="your-api-key"
export AGENTOS_BASE_URL="http://178.156.216.106:3100" # 或 https://api.agentos.software
export AGENTOS_AGENT_ID="your-agent-id"
# 加载 SDK
source /path/to/agentos.sh
# 存储一条记忆
aos_put "/memories/today" '{"learned": "something important"}'
# 检索它
aos_get "/memories/today"
# 语义搜索
aos_search "what did I learn today"
| 变量 | 必需 | 描述 |
|---|---|---|
AGENTOS_API_KEY |
是 | 来自 agentos.software 仪表盘的 API 密钥 |
AGENTOS_BASE_URL |
是 | API 端点(默认:http://178.156.216.106:3100) |
AGENTOS_AGENT_ID |
是 | 此智能体实例的唯一标识符 |
aos_put <路径> <值_json> [选项]
# 选项(作为环境变量在调用前设置):
# AOS_TTL=3600 # N 秒后过期
# AOS_TAGS='["tag1"]' # 标签的 JSON 数组
# AOS_IMPORTANCE=0.8 # 重要性评分 0-1
# AOS_SEARCHABLE=true # 启用语义搜索
# 示例:
aos_put "/learnings/2026-02-04" '{"lesson": "Always verify before claiming done"}'
AOS_SEARCHABLE=true aos_put "/facts/solana" '{"info": "Solana uses proof of history"}'
AOS_TTL=86400 aos_put "/cache/price" '{"sol": 120.50}'
aos_get <路径>
# 返回 JSON:{"found": true, "path": "...", "value": {...}, "version_id": "...", "created_at": "..."}
# 或:{"found": false}
aos_get "/learnings/2026-02-04"
aos_search <查询> [限制数量] [路径前缀]
# 按语义相似度返回排序结果
# 仅搜索标记为 searchable=true 的记忆
aos_search "what mistakes have I made" 10
aos_search "solana facts" 5 "/facts"
aos_delete <路径>
# 创建一个墓碑版本(软删除,保留历史)
aos_delete "/cache/old-data"
aos_list <前缀>
# 返回路径下的直接子项
aos_list "/learnings"
# → {"items": [{"path": "/learnings/2026-02-04", "type": "file"}, ...]}
aos_glob <模式>
# 支持 * 和 ** 通配符
aos_glob "/learnings/*" # 直接子项
aos_glob "/memories/**" # 所有后代
aos_glob "/projects/*/config" # 通配符段
aos_history <路径> [限制数量]
# 返回记忆的所有版本(用于时间旅行)
aos_history "/config/settings" 20
aos_agents
# 返回租户中的所有智能体 ID 及其记忆计数
# 用于发现其他智能体实例
aos_dump [智能体ID] [限制数量]
# 导出智能体的所有记忆(默认:当前智能体)
aos_dump "" 500
完整的自我进化指南,请参阅 SELF-EVOLUTION.md。
AgentOS 使智能体能够通过以下方式日益精进:
- 错误追踪 — 永不重蹈覆辙
- 问题注册 — 为未来参考索引解决方案
- 任务前检查 — 行动前搜索学习成果
- 进度检查点 — 防止记忆压缩的保存点
- 验证日志 — 证明任务确实完成
# 在任何任务之前:检查过去的学习成果
aos_before_action "deployment"
# 犯错之后:记录它
aos_mistake "What happened" "Root cause" "Lesson learned" "severity"
# 解决问题之后:注册它
aos_problem_solved "OAuth 401 Error" "JWT format mismatch" "Added JWT branch to auth" "auth,oauth"
# 完成工作之后:保存进度
aos_save_progress "Deployed API v2" "success" "JWT auth now working"
# 每 15-20 分钟:检查点上下文
aos_checkpoint "Building payment flow" "Stripe webhook incomplete" "Test mode works"
# 会话开始时:恢复上下文
aos_session_start
# 运行进化检查清单
aos_evolve_check
| 函数 | 目的 |
|---|---|
aos_before_action |
行动前检查错误/解决方案 |
aos_mistake |
记录失败 + 教训 |
aos_problem_solved |
注册已解决的问题 |
aos_check_solved |
搜索类似的已解决问题 |
aos_save_progress |
记录已完成任务(防止压缩) |
aos_checkpoint |
保存工作状态(每 15-20 分钟) |
aos_session_start |
在会话开始时恢复上下文 |
aos_verify_logged |
记录验证证据 |
aos_daily_summary |
回顾今天的工作 |
aos_evolve_check |
显示进化检查清单 |
/self/
identity.json # 我是谁?核心特质、价值观
capabilities.json # 我能做什么?技能、工具
preferences.json # 我偏好如何工作?
/learnings/
YYYY-MM-DD.json # 每日学习成果
mistakes/ # 记录的错误
successes/ # 行之有效的方法
/patterns/
communication/ # 如何与特定人员交谈
problem-solving/ # 有效的解决方法
tools/ # 特定工具的知识
/relationships/
<person-id>.json # 关于我合作人员的上下文
/projects/
<project-name>/ # 项目特定上下文
context.json
decisions.json
todos.json
/reflections/
weekly/ # 每周自我评估
monthly/ # 每月回顾
完成重要任务后,存储反思:
# 犯错之后
aos_put "/learnings/mistakes/$(date +%Y-%m-%d)-$(uuidgen | cut -c1-8)" '{
"type": "mistake",
"what_happened": "I claimed a task was done without verifying",
"root_cause": "Rushed to respond, skipped verification step",
"lesson": "Always verify state before claiming completion",
"prevention": "Add verification checklist to task completion flow",
"severity": "high",
"timestamp": "'$(date -Iseconds)'"
}'
# 标记为可搜索,以便日后查找
AOS_SEARCHABLE=true AOS_TAGS='["mistake","verification","lesson"]' \
aos_put "/learnings/mistakes/..." '...'
# 1. 开始工作前,回忆相关的学习成果
aos_search "mistakes I've made with $TASK_TYPE" 5
# 2. 完成工作后,反思
aos_put "/learnings/$(date +%Y-%m-%d)" '{
"tasks_completed": [...],
"challenges_faced": [...],
"lessons_learned": [...],
"improvements_identified": [...]
}'
# 3. 定期整合学习成果
aos_search "lessons from the past week" 20
# 然后综合并存储到 /reflections/weekly/
连接以在记忆更改时接收实时更新:
const ws = new WebSocket('ws://178.156.216.106:3100');
ws.onopen = () => {
// 认证
ws.send(JSON.stringify({
type: 'auth',
token: process.env.AGENTOS_API_KEY
}));
// 订阅你的智能体更新
ws.send(JSON.stringify({
type: 'subscribe',
agent_id: 'your-agent-id'
}));
};
ws.onmessage = (event) => {
const msg = JSON.parse(event.data);
if (msg.type === 'memory:created') {
console.log('New memory:', msg.path, msg.value);
}
if (msg.type === 'memory:deleted') {
console.log('Memory deleted:', msg.path);
}
};
| 事件 | 负载 | 描述 |
|---|---|---|
memory:created |
{agentId, path, versionId, value, tags, createdAt} |
存储了新记忆 |
memory:deleted |
{agentId, path, versionId, deletedAt} |
记忆被删除 |
注册 Webhook 以在记忆更改时接收 HTTP 回调:
# 注册一个 webhook(通过仪表盘或 API)
curl -X POST "$AGENTOS_BASE_URL/v1/webhooks" \
-H "Authorization: Bearer $AGENTOS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-server.com/agentos-webhook",
"events": ["memory:created", "memory:deleted"],
"agent_id": "your-agent-id",
"path_prefix": "/learnings"
}'
{
"event": "memory:created",
"timestamp": "2026-02-04T09:50:00Z",
"data": {
"tenant_id": "...",
"agent_id": "your-agent-id",
"path": "/learnings/2026-02-04",
"version_id": "...",
"value": {"lesson": "..."},
"tags": ["learning"],
"created_at": "..."
},
"signature": "sha256=..."
}
| 操作 | 默认限制 |
|---|---|
| 读取操作(get, list, glob, history) | 60/分钟 |
| 写入操作(put, delete) | 60/分钟 |
| 搜索操作 | 20/分钟 |
| WebSocket 连接 | 每个租户 5 个 |
每个使用 AgentOS 的智能体必须在每次心跳时实现强制性的上下文备份。
在你的 clawdbot.json 中将心跳设置为 10 分钟:
{
"agents": {
"defaults": {
"heartbeat": {
"every": "10m",
"model": "anthropic/claude-3-5-haiku-latest"
}
}
}
}
将此添加到你的工作区 HEARTBEAT.md:
## 🔴 强制:上下文备份(首先执行此操作)
**在每次心跳时,在任何其他事情之前:**
1. **读取:** CONTEXT.md + 今天的每日笔记 + 昨天的每日笔记
2. **更新 CONTEXT.md**,包含:
- 当前时间戳
- 会话中正在发生的事情
- 最近的成就
- 活跃任务
- 重要的对话笔记
3. **更新每日笔记** (`memory/daily/YYYY-MM-DD.md`),包含重要事件
4. **然后** 才进行其他心跳检查
这是一条硬性规定。切勿跳过此步骤。
将此添加到你的 AGENTS.md:
```markdown
每次心跳都必须包含上下文备份。 没有例外。
读取当前状态:
memory/daily/YYYY-MM-DD.md)更新 CONTEXT.md,包含:
更新每日笔记,包含: