Command Palette

Search for a command to run...

0

Claude Tag 给 AI 编码助手上了三堂课:Ambient、Memory、Identity

Anthropic 刚发布的 Claude Tag 不只是又一个 Slack bot。它的三个核心设计理念——主动感知、上下文积累、身份隔离——同样可以搬进本地编码 Agent。本文分享我的实战方案。

Claude Tag 给 AI 编码助手上了三堂课:Ambient、Memory、Identity

Anthropic 刚发布的 Claude Tag 不只是又一个 Slack bot。 它的三个核心设计理念,可以直接搬进你的本地编码 Agent。 而且不用等企业版,今天就能用。


6 月 23 日,Anthropic 发布了 Claude Tag——一个能在 Slack 里像真人同事一样工作的 AI agent。

不是"在 Slack 里打字问 Claude 问题"。而是 Claude 就是频道里的一员:有人 @ 它分配任务,它自己拆解、执行、回报。它会积累上下文,会主动提醒"那个讨论还没结论",会跨天持续工作。

Anthropic 自己的产品团队已经有 65% 的代码由 Claude Tag 产出。

但有意思的不是这个产品本身。而是它的三个设计理念——这些理念不需要 Slack,也不需要企业版。你的本地编码 Agent 今天就能用上。


理念一:Ambient Intelligence(主动感知)

Claude Tag 怎么做

开启 ambient 模式后,Claude 不只是等人 @ 它。它会主动监测频道信息流,发现相关话题就跳出来提醒团队成员。没解决完的讨论,它会追问"这个还需要我跟进吗?"

这和传统 AI 助手完全不同。传统模式是"我问,你答"。Claude Tag 是反过来——它觉得你需要知道什么,它来告诉你。

怎么搬进编码 Agent

你的 AI 编码助手可以做到一样的事——不是等你命令,而是在关键节点自动介入

我用的是 lifecycle hooks。Claude Code 支持 6 种 hook 事件,我只用了 3 个:

SessionStart hook — Agent 启动时自动运行:

#!/bin/bash
# 自动读上次的 HANDOVER.md
if [ -f HANDOVER.md ]; then
  echo "📋 上次进度:"
  grep -A3 "## 当前目标" HANDOVER.md | head -5
  echo ""
  echo "## 上次变更" 
  grep "## Session End" HANDOVER.md | tail -1
fi
 
# 检查 AGENTS.md 是否有超过 14 天未更新
AGE_DAYS=$(( ($(date +%s) - $(stat -c %Y AGENTS.md)) / 86400 ))
if [ $AGE_DAYS -gt 14 ]; then
  echo "⚠️  AGENTS.md $AGE_DAYS 天未更新,可能已过期"
fi

PreToolUse hook — 写文件前自动触发:

#!/bin/bash
# 检测多文件修改
MODIFIED_FILES=$(grep -c "^+" <<< "$INPUT")
if [ $MODIFIED_FILES -gt 3 ]; then
  echo "⚠️  计划修改 $MODIFIED_FILES 个文件,建议先查 CodeGraph 影响范围"
fi
 
# 阻止 .env 写入
if [[ "$FILE_PATH" == *.env* ]]; then
  echo "🚫 禁止修改 .env 文件(防止密钥泄漏)"
  exit 1
fi

SessionEnd hook — 结束时自动执行:

#!/bin/bash
# 从 git diff 提取变更摘要
BRANCH=$(git branch --show-current)
CHANGED=$(git diff --stat HEAD | tail -1)
UNCOMMITTED=$(git diff --name-only | wc -l)
 
cat >> HANDOVER.md << EOF
 
## Session End: $(date '+%Y-%m-%d %H:%M')
- 分支: $BRANCH
- 未提交文件数: $UNCOMMITTED
- 本次修改: $CHANGED
EOF

关键洞察:agent 不需要"记得"更新手账,hooks 会替它做。 确定性 > 概率性。


理念二:Context Accumulation(上下文积累)

Claude Tag 怎么做

Claude Tag 的核心卖点:你不需要每次重新解释项目背景。 它跟随频道时间越长,积累的上下文越多。新人加入频道,可以接着上次的对话继续——因为 Claude 记住了。

怎么搬进编码 Agent

每个 session 都像第一天入职,是 AI 编码助手的最大痛点。解决方案:三层上下文文件

project/
├── AGENTS.md          ← 技术指南(每次启动自动加载,≤150 行)
├── HANDOVER.md        ← 会话日志(跨 session 记忆,80 行自动归档)
├── LEARNINGS.md       ← 踩坑积累(Agent 自动追加,永不丢失)
└── docs/decisions/    ← 架构决策记录(一个决策一个文件)

AGENTS.md 的关键写法:命令优先,不用散文。

# ❌ 错误(agent 会忽略)
"我们重视代码质量,遵循 TDD 原则。"
 
# ✅ 正确(agent 会执行)
## 常用命令
uv run pytest tests/ -v --cov=80%
 
## 约束(按优先级)
1. 所有密钥从 .env 读取,禁止硬编码
2. 数据库迁移只能 ADD,不能 DROP
3. 测试覆盖率不低于 80%

HANDOVER.md 是跨 session 记忆的核心:

## 当前目标
实现用户注册 API
 
## 变更记录
| 日期 | 改动 | 涉及文件 |
|------|------|---------|
| 2026-06-25 | 邮箱验证逻辑 | auth.py + test_auth.py |
 
## 关键决策
| 日期 | 决策 | 原因 |
|------|------|------|
| 2026-06-25 | 用 FastAPI | 原生 async + 自动 OpenAPI |
 
## 已尝试且失败的方法
- ❌ Cerbos 做权限 → 过于复杂,退回手写装饰器

最有价值的是"失败方法"那一栏。 如果你不记录,下个 session 的 agent 会重新踩同一个坑。

LEARNINGS.md 是自动积累的:

每次踩坑,Agent 自动追加一条:

## 2026-06-27: Python 3.12 的 re.Match 不能 () 调用
- **问题**: 运行时报错 'Match' object is not callable
- **原因**: Python 3.12 改了 re.Match 的类型签名
- **解决**: 用 match.group(0) 替代 match()
- **规则**: 验证 Python 版本兼容性,尤其是 3.12+ 的类型变更

三条文件分工明确:AGENTS.md = 导航地图,HANDOVER.md = 会话记忆,LEARNINGS.md = 经验库。


理念三:Scoped Identity(身份隔离)

Claude Tag 怎么做

管理员可以给不同的 Claude 配置不同的身份:销售 Claude 只能访问 CRM,工程 Claude 只能访问代码仓库。两者的记忆、权限、工具完全隔离。

怎么搬进编码 Agent

多项目工作区里,最大的问题是 agent 把项目 A 的知识混到项目 B。

解决方案:分层 AGENTS.md 架构

workspace/
├── AGENTS.md              ← 项目地图(有哪些项目、依赖方向)
│
├── project-a/
│   ├── AGENTS.md          ← 项目 A 专属技术指南
│   ├── HANDOVER.md        ← 项目 A 的会话日志
│   └── docs/decisions/    ← 项目 A 的架构决策
│
└── project-b/
    ├── AGENTS.md          ← 项目 B 专属技术指南
    └── ...

外层 AGENTS.md 只做索引和路由

# Agent Workspace
 
## 项目地图
| 项目 | 目录 | 定位 | 技术栈 |
|------|------|------|--------|
| baby-harness | ./baby-harness/ | Agent 任务执行框架 | Python/Pydantic |
| agent-search-mcp | ./agent-search-mcp/ | MCP 搜索服务 | TypeScript/Node |
| gh.l-web | ./gh.l-web/ | 个人博客 | Next.js 16 |
 
## 依赖关系
baby-harness → agent-search-mcp(搜索增强)
gh.l-web → baby-harness(博客内容)

每一个子项目的 AGENTS.md 只描述自己的技术栈和约束。Agent 进哪个目录,就读哪个项目的上下文——不会窜。


实际效果

我把这三个理念落地到我的 4 个项目工作区后:

指标之前之后
Agent 启动效率先 grep 5-10 分钟探索项目秒级定位,直接开工
重复踩坑率同一类 bug 反复出现降到接近零(LEARNINGS.md 自动提醒)
跨 session 记忆每次重新解释HANDOVER.md 自动加载进度
多项目窜上下文经常混用技术栈完全隔离

最直观的变化:我不再需要每次 session 开头花 5 分钟"同步上下文"。 Agent 自己读 HANDOVER.md 就知道上次做到哪了。


总结

Claude Tag 的三个核心设计理念,本质上是AI Agent 上下文工程的三个维度:

  1. Ambient Intelligence → hooks 在关键节点自动触发,agent 不需要"记得"
  2. Context Accumulation → HANDOVER.md + LEARNINGS.md + ADR,跨 session 知识不丢
  3. Scoped Identity → 分层 AGENTS.md,每个项目独立上下文

不需要等企业版,不需要 Slack。三份 Markdown 文件 + 几个 shell hooks,你的本地编码 Agent 就能从"每次都像第一天入职"变成"带着记忆工作的老同事"。


完整参考架构已开源:github.com/lennney/agent-workspace-refarch

一键初始化:npx create-agent-workspace@latest ./你的工作区 --hooks --ci