我用手机构建了一个控制 AI 编码代理的工具

发布: (2026年3月19日 GMT+8 02:30)
7 分钟阅读
原文: Dev.to

I’m happy to translate the article for you, but I’ll need the text of the article itself. Could you please paste the content you’d like translated (excluding the source link you’ve already provided)? Once I have the text, I’ll translate it into Simplified Chinese while preserving the formatting, markdown, and technical terms.

The Problem

你正坐在沙发上、咖啡店里,或只是离开了办公桌。你有一份想要完成的编码任务清单,并且在机器上安装了 AI 编码代理(Claude Code、Aider、Codex、Gemini CLI)——但你无法在手机上使用它们。

如果你可以直接从 Discord 发送任务短信,让多个 AI 代理在各自的终端中开始工作,会怎样?

我构建的内容

Agentboard — 一个开源工具,让你可以通过 Discord 在手机上编排多个 AI 编码代理。

你输入:

team Alpha: Build a landing page for my portfolio
team Beta: Fix the auth bug in my API
team Gamma: Write tests for the payment module

在你的 Mac 上,会打开三个终端窗口——每个窗口运行 Claude(或 Aider、Codex、Gemini,取决于你的配置),并行处理各自分配的任务。

工作原理

You (Discord on phone)
    |
    v
Discord Bot (Python, runs on your machine)
    |
    +-- Team Alpha → Terminal.app → claude "Build landing page..."
    +-- Team Beta  → Terminal.app → claude "Fix auth bug..."
    +-- Team Gamma → Terminal.app → claude "Write tests..."
  1. 在 Discord 中发送 team Name: task 格式的消息。
  2. 机器人解析该消息。
  3. 为每个团队打开一个真实的 Terminal 窗口。
  4. 交互式运行你的 AI 编码 CLI。
  5. 各团队独立并行工作。

机器人本身不需要 API 积分——它使用你已有的 Claude Code 订阅(或你已安装的任何 CLI)。

可插拔后端

Agentboard 并未锁定到单一 AI 工具。它可以配合任何 CLI 使用。请在 agentboard.toml 中配置您想要的命令。

后端命令示例
Claude Codeclaude "task"
Aideraider --message "task"
Codex CLIcodex "task"
Gemini CLIgemini "task"
Goosegoose run "task"
Any CLIagentboard.toml 中的自定义命令

快速开始

# Clone
git clone https://github.com/LakshmiSravyaVedantham/agentboard
cd agentboard/discord-bot

# Setup
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# Add your Discord bot token to .env
echo 'DISCORD_BOT_TOKEN=your-token' > ../.env

# Run
python bot.py

然后在 Discord 中:

team Alpha: 构建一个 hello world Python 脚本

在你的 Mac 上会打开一个终端窗口,Claude(或配置的 CLI)正在上面工作。

设置 Discord 机器人 (2 分钟)

  1. 前往 Discord Developer Portal
  2. New Application → 将其命名为 “Agentboard”。
  3. Bot 选项卡 → Reset Token → 复制令牌。
  4. 启用 Message Content Intent
  5. OAuth2 → URL Generator → scope: bot; permissions: Send Messages, Manage Channels, Read Message History
  6. 打开生成的 URL 并将机器人添加到你的服务器。

将令牌放入 .env 文件中,如快速入门部分所示。

引擎盖下的实现

Agentboard 还包括一个完整的 Rust 后端(可选):

  • 17 个单元测试,覆盖配置、认证、团队状态机、后端注册表、编排器。
  • Axum 服务器,提供 12 个 API 端点 + WebSocket。
  • Svelte PWA,采用暗色玻璃拟态 UI(配对界面、团队仪表盘、实时终端输出)。
  • JWT 认证,使用 6 位配对码。
  • 可插拔后端,通过 TOML 配置实现。
  • 优雅关闭——向所有子进程发送 SIGTERM。

Rust 服务器编译后生成约 7 MB 的单一二进制文件,前端通过 rust-embed 嵌入其中。

在实际使用中,Discord 机器人(≈150 行 Python 代码)是“杀手级功能”——它无需额外基础设施即可直接工作。

命令

命令会发生什么
team Alpha: Build a landing page打开一个终端,使用 Claude(或配置的 CLI)进行工作。
team Alpha: Fix auth in ~/myproject在该目录中打开终端。
status显示所有活跃的团队。
kill Alpha终止 Alpha 团队进程。
help列出所有可用的命令。

为什么选择 Discord?

我先尝试构建 PWA,但遇到了:

  • 手机上的 localhost 防火墙问题。
  • Safari 在没有 HTTPS 的情况下阻止 Web Speech API。
  • 维护另一个应用。

Discord 解决了所有这些问题:它已经在你的手机上,处理通知,并将你的数据保存在私人服务器中。机器人只有约 150 行 Python 代码,且无需任何基础设施成本。

我学到的

  • Claude Code 的 --print 标志使用 API 积分,而不是你的订阅。交互式的 claude 命令使用你的订阅——在生成多个代理时至关重要。
  • 多个 Discord 机器人会堆积。 开发时,始终在启动新实例前运行 pkill -9 -f bot.py,以避免僵尸机器人。
  • 最简单的方法往往是最好的。 我曾构建过一个复杂的 Rust + Svelte + WebSocket + JWT 系统,但最终交付的产品是一个小巧的 Python Discord 机器人,它会打开终端窗口。把简单的东西交付出去。

试一试

仓库: https://github.com/LakshmiSravyaVedantham/agentboard

如果觉得有用,请给它加星。欢迎提交 PR,尤其是针对 Linux/Windows 终端的支持。

Agentboard 是开源的(MIT)。没有遥测,没有云端,数据不离开你的机器。

0 浏览
Back to Blog

相关文章

阅读更多 »