代码
一个开源的Discord bot 电源 克劳德 SDK特工 可以直接在您的 Discord 服务器中提供自动 AI 协助 .
访问 电话: 网络仪表板和文档.
概览
Cordbot 部署一个Claude代理, 监视您的 Discord 服务器, 维护对话记忆, 并帮助您的社区完成任务 。 带上你自己的 Claude API 密钥 并部署在自己的基础设施上 完全控制.
运行在自己的身上
先决条件
- Claude API 密钥 - 把钥匙拿来 control.harmanic.com (中文(简体) )
- 解析瓶 - 遵循以下设置指示
Discord 瓶装设置
-
创建 Discord 应用程序
- 转到 Discord 开发者门户
- 点击“ 新应用程序”
- 给您的应用程序一个名称( 如 “ My Cordbot ” )
- 单击“创建”
-
创建 Bot 用户
- 在您的申请中, 请到左侧栏的“ 瓶子” 栏目
- 点击“ 添加瓶” 确认
- 在bot的用户名下,点击"Reset Token"以显示您的 bot 令牌
- 安全地复制并保存此令牌 - 晚点再用
-
启用必要的意图
- 向下滚动到“ 专用网关插件 ”
- 启用 "意外的情节" (必须)
- 启用 "服务会员" (必须)
- 点击“ 保存更改”
-
获取您的 Bot 客户端 ID
- 在"OAuth2"部分,找到您的"客户身份"
- 复制此标识
-
请装瓶到您的服务器
- 使用此邀请 URL, 替换
YOUR_CLIENT_ID与您的机器人客户端身份:
https://discord.com/api/oauth2/authorize?client_id=YOUR_CLIENT_ID&permissions=55370986941526&scope=bot- 在浏览器中打开 URL
- 选择要添加机器人的服务器
- 点击“ 授权”
必需权限( 共18个) :
- 常规:查看频道,管理频道,管理角色,踢出成员,禁入成员,管理事件,创建事件
- 文本:发送信件,创建线索(公/私),在线索中发送,管理信件/线索,嵌入链接,附件文件,读取历史,添加反应,创建发售
- 使用此邀请 URL, 替换
启动机器人
用 npx 直接运行机器人 :
-
创建工作空间目录
创建一个将作为机器人工作空间的空文件夹 :
mkdir cordbot-workspace cd cordbot-workspace -
设置环境变量
创建一个
.env此目录中的文件 :DISCORD_BOT_TOKEN=your-discord-bot-token DISCORD_GUILD_ID=your-server-id ANTHROPIC_API_KEY=your-anthropic-api-key -
运行机器人
npx @cordbot/agent关于地方发展的说明: 当运行你的本地机器上的机器人时,设置
HOME用于当前目录的环境变量,以确保所有bot数据(配置、内存、通道)被扩展到您的工作空间:HOME=$(pwd) npx @cordbot/agent这使得机器人无法使用您系统的主目录,并保留您工作空间中包含的一切.
机器人将开始观察您的 Discord 服务器并回复信件 。 它将在这个工作空间目录中创建频道文件夹和配置文件.
部署到Fly.io
24/7行动,部署到 飞.io数字 :
-
创建工程目录
mkdir cordbot-deploy cd cordbot-deploy -
创建 Docker 文件
创建名为的文件
Dockerfile数字 :FROM node:20-slim # Install additional tools that might be needed RUN apt-get update && apt-get install -y \ sqlite3 \ && rm -rf /var/lib/apt/lists/* # Set HOME to workspace for persistent ~/.claude/ directory ENV HOME=/workspace # Accept version as build argument ARG CORDBOT_VERSION=latest # Install cordbot package with specified version RUN npm install -g @cordbot/agent@${CORDBOT_VERSION} # Create workspace directory for persistent storage # Use the existing 'node' user from the base image (already UID 1000) RUN mkdir -p /workspace && chown node:node /workspace # Switch to non-root user USER node # Set working directory to the volume mount point # The volume will be mounted here, making it persistent WORKDIR /workspace # Run cordbot (will use /workspace as its workspace) CMD ["cordbot"] -
创建 fly.toml 配置
创建名为的文件
fly.toml数字 :app = "your-cordbot-name" primary_region = "iad" [build] [env] WORKSPACE_DIR = "/workspace" [mounts] source = "cordbot_data" destination = "/workspace" [[vm]] memory = '2gb' cpu_kind = 'shared' cpus = 1 -
与Fly CLI一起部署
# Install Fly CLI brew install flyctl # macOS # or: curl -L https://fly.io/install.sh | sh # Login to Fly fly auth login # Create volume for persistent storage fly volumes create cordbot_data --size 1 # Set secrets fly secrets set DISCORD_BOT_TOKEN="your-token" fly secrets set DISCORD_GUILD_ID="your-guild-id" fly secrets set ANTHROPIC_API_KEY="your-api-key" # Deploy fly deploy
项目结构
使用 pnpm 工作空间管理 :
cordbot/
├── packages/
│ ├── bot/ # Discord bot agent
│ │ ├── src/
│ │ │ ├── agent/ # Claude agent integration
│ │ │ ├── discord/ # Discord API adapter
│ │ │ ├── memory/ # Long-term memory system
│ │ │ ├── permissions/ # Permission management
│ │ │ └── index.ts # Bot entry point
│ │ └── package.json
│ │
│ └── web-service/ # Web dashboard
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── pages/ # Page components
│ │ ├── hooks/ # React hooks
│ │ └── firebase.ts # Firebase config
│ └── package.json
│
├── package.json # Root package.json
├── pnpm-workspace.yaml # Workspace configuration
└── README.md # This file
关键部件
-
packages/bot/- 运行克洛德特工的Discord机器人- Discord.js 服务器交互集成
- Claude探员SDK的AI能力
- 长期背景记忆系统
- 敏感操作的许可系统
- 自动任务的 Cron 调度器
-
packages/web-service/- 用于配置的网络仪表板- 反应 + Vite + 类型脚本
- 用于认证和储存的消防基地
- Bot 设置和配置 UI
- OAuth 服务整合
捐款
我们欢迎捐款! Cordbot是开放源代码,可以实现社区协作和透明度.
发展 工作流量
-
叉子存储器 关于 GitHub 的
-
创建特性分支
git checkout -b feature/your-feature-name -
做你的改变
- 写入干净、可读代码
- 遵循现有的代码样式
- 添加新特性测试
- 视需要更新文件
-
测试您的更改
pnpm test pnpm build -
提交更改
git add . git commit -m "Description of your changes" -
推到叉子边
git push origin feature/your-feature-name -
打开拉请求 关于 GitHub 的
代码样式
- 类型安全使用类型脚本
- 遵循现有的命名公约
- 写入有意义的承诺信件
- 保持功能重点和小功能
- 注释复杂逻辑
测试
# Run all tests
pnpm test
# Run tests for specific package
pnpm --filter @cordbot/bot test
pnpm --filter @cordbot/web-service test
捐助领域
- 新建 Discord API 集成
- 额外的 OAuth 服务集成
- 内存系统改进
- 文件和实例
- Bug 修正和性能改进
警卫
Cordbot运行时全系统访问,以提供克洛德的完整能力. 仅在有受控Discord访问权限的可信环境中使用. 从不共享认证符或承诺 .env 用于版本控制的文件.
许可证
麻省理工学院-见 自由主义 详情