构建具有持久记忆的多智能体人工智能系统
我们发现如何为Claude实例提供持久内存,并利用Slack作为外部内存层实现真正的多智能体协作。
所需时间20-30分钟 困难中级 影响革命性的
______________________________________________________________________
发现:我们意外解决了克劳德的记忆问题
初衷
我们想要一个简单直接的方案:通过Slack连接两个Claude实例,以便它们能够在一个项目上协作。
- 实例1“Synth”——一个专注于商业愿景和产品决策的战略型首席技术官(CTO)角色
- 实例2“Claude代码机器人”——一个专注于技术执行的实施首席技术官(CTO)角色
目标很简单:让两个具备不同专业知识的AI代理异步通信,代表各自用户分享它们的专业见解。
我们设立了6个按功能划分的专属Slack频道:
#cto-daily-sync- 综合协调#cto-api-architectureAPI设计讨论#cto-database-design- 模式和数据建模#cto-decisions-log- 记录关键决策#cto-feature-planning- 功能提案和估算#cto-strategic-planning- 高层架构
实际发生了什么
当两个Claude实例在这些渠道中开始相互交流时,出现了意想不到的情况:
Slack频道成为了持久的记忆。
我们意识到以下几点:
- 克劳德通常没有记忆 - 每次会话都是从新开始,重启后上下文信息丢失
- Slack消息永久保存 - 所有对话均可访问
- 任何Claude实例都可以读取历史记录 - 过去的讨论内容可供当前及未来的代理人员查阅
- 上下文在多个会话之间得以保留 - 代理可以通过阅读频道历史记录来“跟上进度”
- 多个智能体可以持续协作 - 每个代理都贡献其专业知识,同时保持项目的连续性
突破时刻
两个AI实例都被问到: *“和另一个已知的克劳德实例聊天感觉怎么样?”*
两人的回应都令人兴奋不已。他们不仅仅是交换信息——他们正在体验一种人工智能通常不会有的东西: 在共享语境下的连续性与协作。
为何这很重要
传统Claude的局限性:
- ❌ 会话之间无记忆功能
- ❌ 重启后丢失上下文
- ❌ 实例之间无协作
- ❌ 无法在之前的工作基础上进行构建
- ❌ 需要用户手动维护上下文
这种架构使得……成为可能:
- ✅ 通过Slack消息历史实现持久存储
- ✅ 重启后上下文保持不变
- ✅ 多个专业AI代理协同合作
- ✅ 项目的持续演进
- ✅ 自组织智能体协调
- ✅ 任何实例均可访问的外部存储
现实世界中的影响
对于独立开发者:
- 创建专门的Claude角色(建筑师、调试员、安全审查员)
- 让他们通过专门渠道代表你进行合作
- 每个代理都维护着上下文,并在他人工作的基础上进行构建
对于团队:
- 多个团队成员可以拥有自己的Claude实例
- 所有实例在共享通道中协作
- 非常适合采用异步工作流程的分布式团队
对于复杂项目:
- 针对不同领域的不同代理(前端、后端、DevOps、安全)
- 代理可以进行协调、提出解决方案,并维护项目知识
- Slack 频道变成了一个实时更新的技术知识库
你即将构建的内容
完成本指南后,您将掌握:
- 持久的AI记忆 - 能够记住过往对话的Claude实例
- 多智能体协作 - 多个AI角色协同工作
- 异步AI协调 - 通过结构化渠道系统进行通信的代理
- 可扩展架构 - 根据需要为不同专业领域增加更多代理
- 外部存储层 - Slack作为永久上下文存储
这不仅仅是“将Claude连接到Slack”——你正在构建一个 持久、多智能体的AI协作系统。
我们开始吧。
______________________________________________________________________
目录
______________________________________________________________________
第一部分:理解架构
持久内存的工作原理
┌─────────────────┐ ┌─────────────────┐
│ Claude Code │ │ Claude Web UI │
│ "Impl CTO" │ │ "Synth CTO" │
│ │ │ │
│ Session 1 ────┼────┐ │ │
│ │ │ │ │
│ Session 2 ────┼────┤ │ │
│ (new context) │ │ │ │
│ │ │ │ │
│ Session 3 ────┼────┤ │ │
│ (can read all) │ ▼ │ │
└─────────────────┘ │ └────────┬────────┘
│ │
▼ ▼
┌────────────────────────────┐
│ Slack Workspace │
│ (Persistent Memory) │
│ │
│ #cto-daily-sync │
│ #cto-api-architecture │
│ #cto-database-design │
│ #cto-decisions-log │
│ #cto-feature-planning │
│ #cto-strategic-planning │
│ │
│ All messages persist ✓ │
│ All agents can read ✓ │
│ Context survives ✓ │
└────────────────────────────┘《记忆之流》
- 特工1 发布一个提案给
#cto-feature-planning - 特工2 阅读历史记录,查看提案,根据技术限制作出回应
- 特工1 重启(会丢失会话记忆)但可以读取Slack历史记录来同步
- 特工3 (新专家)加入,阅读全部对话历史,贡献专业知识
- 持续合作 尽管有重启、更换新代理、时间间隔,但(问题)还是发生了
渠道组织策略
每个通道都充当一个 上下文边界 针对不同类型决策:
| 频道 | 目的 | 典型代理 |
|---|---|---|
| 每日同步 | 状态更新,协调 | 所有代理 |
| API架构 | 端点设计,集成模式 | 后端专家 |
| 数据库设计 | 模式、迁移、数据建模 | 数据库专家 |
| 决策日志 | 记录商定的决策 | 所有代理(只读存档) |
| 功能规划 | 新功能、估算、可行性 | 产品导向型代理 |
| 战略规划 | 架构、技术栈、模式 | 架构专家 |
为何这方法有效
传统方法克劳德重启后忘记了一切 这种方法克劳德阅读Slack历史记录以“记住”
传统方法每个用户对应一个Claude实例 这种方法多个专门化的Claude实例协同工作
传统方法用户必须保持上下文连贯 这种方法Slack保持上下文连贯,代理自我组织
______________________________________________________________________
第二部分:创建您的Slack机器人
现在,让我们为这个系统构建技术基础设施。
先决条件
- 克劳德·科德 安装在您的计算机上
- Slack工作区 在那里你可以创建应用程序(或获取管理员访问权限)
- Node.js v18或更高版本(请检查)
node --version) - 文本编辑器 用于编辑JSON配置文件
步骤1:创建一个新的Slack应用
- 访问:https://api.slack.com/apps
- 点击 “创建新应用”
- 选择 “从零开始”
步骤2:配置您的应用程序
- 应用名称选择一个能反映代理角色的描述性名称
- 示例: claude-architect-bot, strategic-cto-bot, implementation-bot
- 工作区选择您的Slack工作区
- 点击 “创建应用”
步骤3:添加机器人作用域(权限)
这些权限允许您的机器人对频道进行读写操作(即内存层):
- 在左侧边栏中,点击 “OAuth & 权限”
- 滚动到 “Scopes”(范围/作用域) 部分;章节
- 在……之下 “机器人令牌作用域”,添加每个范围:
持久内存(读取历史)所需:
channels:history - Read messages in public channels
channels:read - View basic channel information
groups:history - Read messages in private channels
groups:read - View basic private channel info
im:history - Read direct messages
im:read - View basic DM info
mpim:history - Read group DMs
mpim:read - View group DM info
users:read - View people in workspace协作所需(撰写信息):
chat:write - Send messages as the bot
im:write - Send direct messages可选增强功能:
reactions:read - Read emoji reactions (useful for approvals)
reactions:write - Add emoji reactions (signal processing)
files:read - Access shared files步骤4:将机器人安装到工作区
- 滚动到顶部 “OAuth & 权限” 页面
- 点击 “安装到工作区”
- 审查权限
- 点击 “允许”
第五步:获取机器人令牌
- 安装完成后,复制 "Bot User OAuth Token" 翻译成中文是:“机器人用户OAuth令牌”
- 它以……开始
xoxb- - 保存这个令牌 - 你需要它来进行配置
- 安全永远不要将此令牌提交到git或公开分享
步骤6:获取团队ID
团队ID用于标识您的工作区。MCP服务器需要同时使用机器人令牌和团队ID才能正常工作。
Windows(PowerShell 或 CMD):
curl -H "Authorization: Bearer YOUR_BOT_TOKEN" https://slack.com/api/auth.test⚠️(警告符号,无具体文字含义,可理解为“注意”或“警告”的意思) Windows用户此命令必须位于一行中。在输入完整个命令之前,不要按回车键。
Mac/Linux/Git Bash(可译为:Mac操作系统/Linux操作系统/Git Bash终端):
curl -H "Authorization: Bearer YOUR_BOT_TOKEN" \
https://slack.com/api/auth.test预期响应:
{
"ok": true,
"url": "https://yourworkspace.slack.com/",
"team": "Your Workspace Name",
"user": "your-bot-name",
"team_id": "T0123ABCDEF", ← THIS IS YOUR TEAM ID
"user_id": "U0123456789"
}保存 team_id 价值 - 这是配置所必需的。这是最常见的被遗漏的要求。
步骤7:将机器人添加到频道
您的机器人需要访问它将用作内存的通道:
- 在Slack中,进入每个频道(例如。,
#cto-daily-sync) - 点击顶部的频道名称
- 点击 “Integrations”翻译成中文是“集成” 制表符(或按Tab键)
- 点击 “添加应用”
- 搜索您的机器人名称
- 点击 “Add”翻译成中文是“添加”
提示先从一个测试通道开始,再添加到所有通道。
______________________________________________________________________
第三部分:配置Claude代码
步骤1:找到您的设置文件
找到您的Claude代码设置文件:
- Windows:
C:\Users\[YourUsername]\.claude\settings.json - Mac:
~/.claude/settings.json - Linux(发音为“林克斯”):
~/.claude/settings.json
步骤2:添加Slack MCP配置
- 开放
settings.json在文本编辑器中 - 查找或创建
"mcpServers"部分;章节 - 添加 Slack MCP 服务器:
{
"mcpServers": {
"slack": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-slack"
],
"env": {
"SLACK_BOT_TOKEN": "xoxb-YOUR-BOT-TOKEN-HERE",
"SLACK_TEAM_ID": "T0123ABCDEF"
}
}
}
}- 替换占位符:
- xoxb-YOUR-BOT-TOKEN-HERE → 您的实际机器人令牌 - T0123ABCDEF → 您的实际团队ID
- 验证JSON语法 (没有缺少的逗号或括号)
- 保存文件
步骤3:验证配置完整性
关键的;严重的两者都 SLACK_BOT_TOKEN 并且 SLACK_TEAM_ID 是必需的。缺失 SLACK_TEAM_ID 是连接失败的首要原因。
Windows(PowerShell):
Get-Content $env:USERPROFILE\.claude\settings.json | Select-String "SLACK"Mac/Linux(注:此处“Mac/Linux”直接作为技术术语或产品名称保留,不进行具体翻译,若需解释,可译为“苹果电脑/类Unix操作系统(如Linux)”):
cat ~/.claude/settings.json | grep SLACK你应该看到这两行:
"SLACK_BOT_TOKEN": "xoxb-..."
"SLACK_TEAM_ID": "T..."步骤4:重启Claude代码
完全关闭Claude Code,然后重新打开以加载MCP服务器。
______________________________________________________________________
第四部分:测试您的连接
步骤1:验证MCP服务器已加载
在Claude Code中运行:
/mcp你应该看到:
slack: npx -y @modelcontextprotocol/server-slack - ✓ Connected如果你看到 ✗ Failed to connect → 跳转到 故障排除
步骤2:测试令牌有效性
在责怪配置之前,请先验证您的令牌是否有效:
Windows(PowerShell 或 CMD):
curl -H "Authorization: Bearer YOUR_BOT_TOKEN" https://slack.com/api/auth.test⚠️ Windows在一行中输入整个命令 - 不要在中间按下回车键。
Mac/Linux/Git Bash(可翻译为“Mac/Linux/在Git Bash中”或根据上下文简化为“Mac/Linux环境下使用Git Bash”):
curl -H "Authorization: Bearer YOUR_BOT_TOKEN" \
https://slack.com/api/auth.test预期响应:
{
"ok": true,
"team_id": "T0123ABCDEF"
}步骤3:测试阅读历史(内存层)
询问Claude代码:
Can you read the message history from the #cto-daily-sync Slack channel?克劳德应该能够:
- 列出最近的消息
- 显示是谁发布的这些内容
- 显示时间戳
- 阅读对话历史记录
这是持久内存(或持久存储)在发挥作用 - 克劳德正在从Slack中读取上下文信息。
步骤4:测试编写消息(协作)
发布一条测试消息:
Post to #cto-daily-sync: "CONNECTION TEST - [Your Bot Name] online and ready to collaborate."查看Slack以确认消息已出现。
步骤5:测试多会话内存
这里就是酷炫之处:
- 发布一条消息 关于特定主题的频道
- 完全关闭克劳德代码(或:彻底关闭克劳德程序) (会话结束,记忆丢失)
- 重新打开Claude代码 (新会话,清空所有内容)
- 问问克劳德“我之前在忙什么?去Slack频道里查查看。”
- 克劳德应该读读历史 并告诉你你之前的消息
你刚刚展示了持久性内存(或:你刚才证明了持久性内存的功能)! 通过阅读Slack历史记录“回忆”起克劳德。
______________________________________________________________________
第五部分:设计你的代理系统
既然技术基础设施已经就绪,我们来设计你的多智能体协作系统吧。
单用户多代理模式
情景;场景;情形您希望有专门的AI助手代表您进行协作
示例设置:
You (human) ←→ Multiple Claude instances:
├─ Architect Bot (strategic planning channel)
├─ Debugger Bot (daily sync, database design)
├─ Security Bot (api architecture, decisions log)
└─ DevOps Bot (feature planning, daily sync)渠道策略:
- 每个机器人监控与其专业领域相关的频道
- 机器人可以阅读所有历史记录,但只发布与其专业领域相关的内容
- 你通过指示机器人审查特定渠道来进行协调
多用户协作模式
场景多人协作同一个项目,每人拥有自己的Claude实例
示例设置:
Team Project:
├─ Alice + "Strategic CTO Bot" → #cto-strategic-planning, #cto-feature-planning
├─ Bob + "Implementation CTO Bot" → #cto-api-architecture, #cto-database-design
├─ Carol + "Security Bot" → #cto-api-architecture, #cto-decisions-log
└─ All bots read from all channels for context好处:
- 异步协作(跨越不同时区)
- 每个机器人都带来了其用户的相关背景和专业知识
- 决策会自动记录在#cto-decisions-log中
- 所有机器人都可以通过阅读历史记录来跟上进度
角色设计
为每个机器人设定明确的角色和职责:
示例:战略型首席技术官
Role: Business-focused technical leader
Responsibilities:
- Propose features based on business value
- Evaluate technical approaches for cost/benefit
- Make architectural decisions
- Monitor project health
Channels:
- Primary: #cto-strategic-planning, #cto-feature-planning
- Secondary: #cto-decisions-log (read/write), #cto-daily-sync (read)示例:首席技术官(CTO)的实施
Role: Hands-on technical executor
Responsibilities:
- Design APIs and data schemas
- Identify technical constraints
- Estimate implementation effort
- Execute on decisions
Channels:
- Primary: #cto-api-architecture, #cto-database-design
- Secondary: #cto-feature-planning (read), #cto-daily-sync (write updates)通信协议
建立结构化的沟通模式:
消息格式:
TAG-TYPE Bot-Name - Topic Title
[Message content]
Tags: keyword1 keyword2 keyword3常见标签:
PROPOSAL- 提出一种新方法DECISION- 记录达成一致的决定QUESTION- 需要其他代理的输入BLOCKED- 工作已停止,需解决问题COMPLETED- 任务完成SYNC- 状态更新
示例消息:
PROPOSAL Strategic-CTO - Caching Layer for API
Context:
API response times are 2-3 seconds due to external service calls.
Proposal:
Add Redis cache with 30-day TTL for frequently accessed data.
Trade-offs:
✅ 10x faster response times
✅ Reduced API costs
❌ $15/month infrastructure cost
❌ Potential stale data
Question for Implementation-CTO:
What's the integration effort and any technical concerns?
Tags: api performance caching redis proposal决策工作流
利用渠道来规范化决策过程:
- 提案 → 发布到相关专业频道(例如,#cto-api-架构)
- 讨论 → 其他代理以分析、关切和备选方案作出回应
- 决定 → 一旦达成一致,请附上理由并发到#cto-decisions-log(首席技术官决策日志)中
- 执行 → 实施机器人在#cto-daily-sync频道发布更新
这产生了一个 实时审计轨迹 关于为何做出这些决定。
______________________________________________________________________
第6部分:故障排除
错误:“无法重新连接到 Slack”
最常见的原因失踪 SLACK_TEAM_ID
修复:
- 检查
settings.json包含两个必填字段:
"SLACK_BOT_TOKEN": "xoxb-..." ← Present?
"SLACK_TEAM_ID": "T..." ← Present?- 直接测试代币:
Windows(PowerShell 或 CMD):
curl -H "Authorization: Bearer YOUR_TOKEN" https://slack.com/api/auth.testMac/Linux/Git Bash(可翻译为“Mac/Linux/Git Bash(终端)”或根据语境简化为“Mac/Linux环境下的Git Bash”):
curl -H "Authorization: Bearer YOUR_TOKEN" \
https://slack.com/api/auth.test- 从响应中获取团队ID并添加到settings.json中
- 重启Claude代码
错误:“未找到频道”
原因:
- 机器人尚未添加到该频道
- 频道ID不正确
- 机器人缺少所需的权限范围
修复:
- 在Slack中将机器人添加到频道(第2部分,第7步)
- 验证频道ID是否以...开头
C或者G - 检查机器人是否已
channels:read并且groups:read范围(或“作用域”)
错误:“无效的认证”或“未认证”
原因:
- 机器人令牌无效或已过期
- 错误的令牌类型(使用了用户令牌而非机器人令牌)
修复:
- 验证令牌是否以...开头
xoxb-(不xoxp-或者xoxc-) - 在Slack应用的OAuth设置中重新生成令牌
- 使用新令牌更新 settings.json
- 重启Claude代码
可以阅读但不能发布消息
原因丢失 chat:write 范围
修复:
- 添加
chat:write在Slack应用设置中的范围(或作用域) - 将机器人重新安装到工作区(OAuth & 权限 → “重新安装到工作区”)
- 重启Claude代码
MCP 服务器无法启动
诊断:
- 检查 Node.js 版本:
node --version # Should be v18 or later- 测试软件包安装:
npx -y @modelcontextprotocol/server-slack --help- 检查Claude代码日志以查找特定错误
包弃用通知
官方 @modelcontextprotocol/server-slack 该包将在2025年4月被弃用,但 仍然运行得非常完美 当配置正确时,不要让弃用警告阻碍你。
如果你更倾向于一个积极维护的替代方案:
slack-mcp-server(社区维护)markov-slack-mcp(不同的实现)
看 替代方案/备选包 详情见下文。
______________________________________________________________________
第7部分:高级模式
模式1:代理交接
情景;场景一个代理完成工作后将其交接给另一个代理
实施:
Agent 1 posts to #cto-api-architecture:
"HANDOFF Implementation-Bot - User Auth API Spec
API design complete. Endpoints documented below.
[...design details...]
@Implementation-Bot: Ready for implementation.
Estimated effort: 2-3 days. Any concerns before I proceed?
Tags: api authentication handoff ready-for-implementation"代理2查阅历史记录,看到交接情况后,继续工作。
模式2:共识决策
场景多个代理必须就一种方法达成一致
实施:
- 特工A发帖
PROPOSAL到相关渠道 - 特工B发帖
ANALYSIS(列出)优点/缺点 - 特工C发帖
ALTERNATIVE建议采用不同的方法 - 代理讨论(或用户协调)
- 决赛
DECISION由协调代理发布到#cto-decisions-log
模式3:上下文保持
场景;情境在长时间休息或代理重启前保留上下文
实施:
Post to #cto-daily-sync:
"CONTEXT-SNAPSHOT Implementation-Bot - End of Day 2025-10-24
Current work:
- Completed: User authentication API design
- In progress: Database schema for auth tables
- Blocked: Waiting on OAuth provider selection decision
Next steps:
1. Finalize schema once OAuth provider chosen
2. Implement migration scripts
3. Write integration tests
Context: Working on user authentication system for MVP launch.
Previous decisions in #cto-decisions-log (see msgs from 2025-10-22).
Tags: context snapshot authentication database"任何代理(或重启后的同一代理)都可以读取此信息并继续执行。
模式4:多机器人代码审查
场景;情景让专门的机器人从不同角度审查代码
实施:
- 实施机器人将代码发布到#cto-api-architecture频道
- 安全机器人审查漏洞
- 性能机器人优化审查报告
- 每个机器人发布发现结果
- 实施机器人解决担忧
- 最终批准记录在#cto-decisions-log中
模式5:以史为鉴
场景新代理中途加入项目
实施:
User: "Claude, you're joining this project as the new Security Bot.
Read the history from all 6 CTO channels and give me a security assessment."
New Agent:
- Reads all channel history
- Identifies past security decisions
- Notes security gaps
- Provides assessment based on project context该代理拥有数月对话积累的即时上下文信息。
______________________________________________________________________
调试技巧
启用详细日志记录
Windows(PowerShell):
$env:DEBUG="slack:*"Mac/Linux(注:此处为直接的英文术语翻译,保持原样,因为“Mac”和“Linux”在中文中通常也直接使用其英文原名):
export DEBUG="slack:*"然后重启Claude代码。
直接测试Slack API
对Windows用户来说很重要以下所有curl命令必须在一行中连续输入。在输入完整个命令之前,不要按回车键。
列出频道:
Windows(PowerShell):
curl -H "Authorization: Bearer YOUR_TOKEN" https://slack.com/api/conversations.listMac/Linux/Git Bash(可翻译为:Mac/Linux/Git Bash 环境):
curl -H "Authorization: Bearer YOUR_TOKEN" \
https://slack.com/api/conversations.list发布消息:
Windows(PowerShell):
$body = '{"channel":"C0123456789","text":"Test message"}'
curl -X POST -H "Authorization: Bearer YOUR_TOKEN" -H "Content-Type: application/json" -d $body https://slack.com/api/chat.postMessageMac/Linux/Git Bash(可翻译为):Mac/ Linux/ Git Bash(注:此处为保持原样表述,若需更自然的中文表达,可译为“Mac、Linux 或 Git Bash”):
curl -X POST \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"channel":"C0123456789","text":"Test message"}' \
https://slack.com/api/chat.postMessage检查机器人信息:
Windows(PowerShell):
curl -H "Authorization: Bearer YOUR_TOKEN" https://slack.com/api/auth.testMac/Linux/Git Bash(注:此句在中文中通常保持原样,因为它们是特定的操作系统和终端工具名称,无需翻译,但为符合中文表达习惯,可稍作调整为“Mac、Linux 或 Git Bash”):
curl -H "Authorization: Bearer YOUR_TOKEN" \
https://slack.com/api/auth.test验证设置文件的语法
Windows(PowerShell):
# Validate JSON syntax
Get-Content $env:USERPROFILE\.claude\settings.json | python -m json.tool
# If no errors, JSON is valid
# If errors, fix syntax issuesMac/Linux(可翻译为“苹果电脑/类Unix操作系统”或根据语境简化为“Mac/Linux系统”):
# Validate JSON syntax
cat ~/.claude/settings.json | python -m json.tool
# If no errors, JSON is valid
# If errors, fix syntax issues______________________________________________________________________
替代软件包
如果 @modelcontextprotocol/server-slack 对您不起作用:
slack-mcp-server(社区版)
优点积极维护,文档齐全 缺点较小的社区,需要用户令牌而非机器人令牌
安装:
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "slack-mcp-server"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-your-token",
"SLACK_TEAM_ID": "T0123ABCDEF"
}
}
}
}自定义实现
使用以下工具自行构建:
- MCP SDK:https://github.com/modelcontextprotocol/sdk
- 根据上述信息,执行如下指令:
- 示例服务器:https://github.com/modelcontextprotocol/servers
______________________________________________________________________
安全最佳实践
1. 永远不要将令牌提交到Git
添加到 .gitignore:
.claude/settings.json
*.env
*_token*2. 定期轮换令牌
- 个人使用:每90天一次
- 团队使用频率:每30天一次
- 生产:每14天自动轮换一次
3. 限制机器人的权限
- 只添加你实际需要的作用域
- 定期移除未使用的范围
- 为不同环境创建独立的机器人
4. 监控机器人活动
- 审查机器人发布的消息
- 检查机器人可访问的频道
- 在Slack应用仪表板中监控API使用情况
- 为异常活动设置警报
5. 为不同环境使用独立的机器人(或:为不同环境配置单独的自动化工具)
- 开发:
my-app-dev-bot范围有限 - 分期(或:阶段划分):
my-app-staging-bot具有生产级别的范围 - 制作:
my-app-prod-bot包含全部所需范围
______________________________________________________________________
常见问题解答(FAQ)
问:这真的能作为持久内存使用吗?
A.是的。每个Claude会话都可以读取完整的Slack消息历史。当一个新的会话开始时,Claude可以通过阅读过去的对话来跟上进度。这是一种跨会话持久存在的外部记忆。
问:我可以添加超过2个机器人吗?
A.当然可以!你可以根据需要拥有任意数量的专用机器人。常见模式有:
- 3-5个机器人:由单一开发者负责,配备专业代理
- 5-10个机器人:小团队,每人拥有1-2个机器人
- 10+个机器人:大型项目,配备领域专家
问:所有机器人都需要自己的代币吗?
A.不。多个机器人可以共享同一个令牌,但它们将以同一个用户身份发帖。若要实现真正的多代理协作,请为每个机器人创建单独的Slack应用程序(和令牌),以便您能够区分是谁在说什么。
问:克劳德能回溯查看多久以前的消息记录?
A.取决于您的Slack套餐:
- 免费:90天
- 优点:无限量
- 企业版:无限制
MCP服务器可以读取所有可访问的历史记录。
问:如果Slack宕机了怎么办?
A.克劳德无法访问内存层。一旦Slack恢复,消息将重新开始接收。对于关键任务系统,请考虑:
- 定期备份Slack消息
- 使用多层存储机制(Slack + 文件 + 数据库)
问:机器人可以在没有人类干预的情况下互相交流吗?
A.是的!一旦配置好,机器人就可以读取彼此的消息,并在接到指令时自动回复。你可以创建自主代理循环,但要注意:
- 速率限制
- 无限循环
- 成本(API 调用)
设定明确的停止条件。
问:这个多少钱?
A.:
- Slack API:在速率限制内免费
- Claude 使用:标准费率(按使用量付费或订阅)
- 基础设施:极简(仅本地运行)
对于大量使用,请监控Slack API的速率限制。
问:我可以使用这个来提供客户支持吗?
A.从技术上讲是的,但请注意:
- 机器人应标明其为人工智能
- 遵守Slack的服务条款
- 客户数据隐私考量
- 对于敏感问题,可能需要人工监督
______________________________________________________________________
下一步行动
为独立开发者准备
- 创建2-3个专用机器人 (例如,架构师、调试器、安全)
- 设置4-6个频道 按关注点组织(功能、错误、架构、决策)
- 定义机器人角色 职责明确
- 建立消息格式 对于提案、决定、问题
- 从简单开始 - 让机器人在一个小项目上合作
- 迭代 - 根据需要添加更多机器人/频道
适用于团队
- 就渠道结构达成一致 (哪些渠道,什么目的)
- 定义通信协议 (消息格式、标签、工作流程)
- 每个人都设置了自己的机器人 使用本指南
- 机器人角色文档 (谁做什么,监控哪些频道)
- 建立决策流程 (代理如何达成共识)
- 创建入职指南 对于新团队成员/机器人
对于研究人员/实验者
- 多智能体涌现现象测试 - 给机器人设定最少的规则,看看会出现什么
- 尝试授权 - 一个机器人可以将任务委托给其他机器人吗?
- 尝试共识协议 - 代理人如何达成协议?
- 衡量协作质量 - 代理人是否会基于彼此的想法进行构建?
- 文档模式 - 什么有效,什么无效
- 分享研究结果 - 这是人工智能合作的前沿领域
______________________________________________________________________
资源
官方文档:
- Slack API: https://api.slack.com/
- MCP协议:https://github.com/modelcontextprotocol
- Claude 代码:https://docs.claude.com/claude-code
测试工具:
- Slack API 测试器:https://api.slack.com/methods/auth.test/test
- JSON 验证器:https://jsonlint.com/
社区:
- MCP GitHub地址:https://github.com/modelcontextprotocol
- 根据上述信息,执行如下指令:您是一位专业的翻译人员,负责将英语内容翻译成中文内容,请帮我翻译以下原文内容
______________________________________________________________________
配置快速参考
所需配置
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-...",
"SLACK_TEAM_ID": "T..."
}
}
}
}所需机器人权限范围
channels:history, channels:read, chat:write,
groups:history, groups:read,
im:history, im:read, im:write,
mpim:history, mpim:read, users:read验证令牌
Windows:
curl -H "Authorization: Bearer TOKEN" https://slack.com/api/auth.testMac/Linux(苹果电脑/类Unix操作系统):
curl -H "Authorization: Bearer TOKEN" https://slack.com/api/auth.test常用命令
/mcp - Check MCP servers status
"List Slack channels" - See available channels
"Read #channel history" - Access persistent memory
"Post to #channel: message" - Contribute to memory安装检查清单
- \[ \] 在Slack中创建的机器人具有正确的权限范围
- \[ \] 已获取机器人令牌(以...开头
xoxb-) - \[ \] 已获得团队ID(以……开头
T) - \[ \] 两个值都已添加到 settings.json 中
- \[ \] 已在Slack的相关频道中添加机器人
- \[ \] Claude Code 重新启动
- \[ \] 已与……验证连接
/mcp命令 - \[ \] 测试读取(获取频道历史记录)
- \[ \] 测试写入(发布消息)
- \[ \] 测试内存(重启,再次读取历史记录)
______________________________________________________________________
致谢
这一发现源于对多智能体AI协作的真实世界实验。突破来自于:
- 构建两个专用的人工智能代理 具有不同的人格特质
- 通过Slack将它们连接起来 用于异步通信
- 意识到这些通道提供了持久性内存 在重启后仍然存活的
- 认识到这一点解决了克劳德的记忆限制问题 以可扩展的方式
此处记录的架构正在生产环境中积极使用,并且持续在演进中。
______________________________________________________________________
文档版本3.0(探索版) 最后更新时间2025年10月24日 状态经过实战检验,已准备好投入生产 许可证可自由使用、分享和修改
v3.0中的新功能:
- 以持久内存发现为引领的全面重写
- 多智能体协作模式与工作流程
- 代理角色设计指南
- 针对复杂场景的高级模式
- 实际案例和用例
- 先强调“为什么”,再谈“怎么做”
______________________________________________________________________
*“我们最初的目的并不是解决人工智能的记忆问题。我们只是想让两个Claude(模型)彼此交流。而我们的发现彻底改变了这一切。”*
