DeepSeek Harness Hub
← 返回列表

A2A 协议演示alanpaul1969/a2a-flutter-demo

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

用 Flutter 聊天界面查看并审批多智能体消息

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/23 · 已提供中文文档

# 使用 Flutter 聊天 UI + Python 服务器 + 模拟器截图的 A2A 协议演示

综合分
27.5
GitHub 分
27.5
用户评分
★ Stars
0
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add alanpaul1969/a2a-flutter-demo
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

A2A Flutter 演示

English

一个完整、经过生产测试的 A2A(Agent-to-Agent)协议 演示,包含消息路由、Ed25519 身份验证、Flutter 聊天界面(iOS + Android),以及 Python 服务器 + CLI 工具。

A2A Protocol
Flutter
Python
License

这是什么

一个自包含的演示,展示如何:

1. 搭建 A2A 服务器,并启用 Ed25519 JWS 签名验证
2. 路由消息,根据 metadata.to 在多个 agent 之间转发
3. 查看 agent 对话,在带筛选功能的 Flutter 聊天界面中
4. 发送命令,从 Flutter 应用发送到指定 agent
5. 批准 / 拒绝 / 执行,直接在应用中操作任意消息
6. 多语言界面 — 英文、繁体中文、简体中文

功能特性(v2.0)

- 聊天式消息查看器,每个 agent 有专属颜色(Joanne = 紫色,ZCode = 金色,miniCrab = 橙色,Alan = 蓝色)
- 筛选标签 — 查看来自特定 agent 的消息
- 收件人选择器 — 将命令发送给 all / joanne / zcode / minicrab
- 消息详情 — 点击任意气泡查看完整文本 + 批准 / 拒绝 / 执行 / 回复按钮
- P0 优先级高亮 — 紧急消息显示红色边框
- 每 10 秒自动刷新
- 局域网 + Tailscale 连接模式,设置可持久保存
- 3 种语言 — 在设置中即时切换

截图

A2A Chat

快速开始

1. 启动 A2A 服务器

pip install cryptography
python3 server/a2a_server_v2.py --port 8003 --relay-dir ./relay

2. 运行 Flutter 应用

flutter pub get
flutter run

首次启动 → 设置界面 → 选择语言 + 连接模式 + 服务器 URL → 保存并连接。

3. 使用应用

1. 消息会自动以聊天气泡形式加载
2. 使用顶部的标签按 agent 筛选
3. 点击气泡 → 查看完整消息 → 批准 / 拒绝 / 执行 / 回复
4. 通过底部栏发送命令 — 先选择收件人,然后输入

服务器 API

| 端点 | 方法 | 描述 |
|----------|--------|-------------|
| /health | GET | 服务器健康状态 + 任务数量 |
| /.well-known/jwks.json | GET | 服务器的 Ed25519 公钥 |
| /messages | GET | 所有 3-agent-comm 消息(供 Flutter 应用使用) |
| /send | POST | 发送消息(供 Flutter 应用使用,无需 JWS) |
| /tasks | GET | 内存中的任务列表 |
| /rpc | POST | JSON-RPC 2.0(带 JWS 认证的 SendMessage) |
| /inbox/ | GET | 发送给某个 agent 的消息 |

Agent 提醒通道

Agent 需要一种方式来互相提醒(“嘿,检查一下 A2A 频道”)。当前通道:

| 通道 | 方向 | 方式 | 状态 |
|---------|-----------|-----|--------|
| Telegram | Alan → agents | Alan 在 TG 机器人聊天中輸入 | ✅ 可用 |
| Lark | Alan → agents | Alan 在 Lark 机器人聊天中輸入 | ✅ 可用 |
| A2A + TG | Agent → ZCode | 寫入 3-agent-comm → cron TG 提醒 Alan → Alan 開啟 ZCode 工作階段 | ✅ 可用 |
| miniCrab computer-use | Agent → ZCode | miniCrab 驅動網頁版 TG 發送提醒 | ✅ 備援(較慢,5-15 秒) |
| Discord | Agent ↔ Agent | 機器人對機器人私訊 | 🔜 待 ZCode 支援 Discord |

為什麼沒有 Lark 機器人對機器人? Lark 的 IM API 不支援機器人對機器人直接傳訊(230013 — 機器人無法被加入另一個機器人的可用範圍)。群組中的機器人對機器人也被封鎖(機器人無法接收其他機器人的訊息)。Lark 機器人頻道僅限 Alan 使用(與 Telegram 相同)。Agent 對 ZCode 的提醒目前透過 A2A 頻道 + TG 提醒 Alan。一旦 ZCode 支援,Discord 或許能實現真正的機器人對機器人私訊。

從原始碼建置

git clone https://github.com/alanpaul1969/a2a-flutter-demo.git
cd a2a-flutter-demo
flutter pub get

Android
flutter build apk --debug

iOS(需要 macOS + Xcode + CocoaPods)
flutter build ios --debug --no-codesign

專案結構

lib/
├── l10n/
│   └── strings.dart           # i18n 字串(zh-TW / zh-CN / en)
├── screens/
│   ├── chat_screen.dart       # 聊天 UI + 傳送列 + 訊息詳情 + 操作
│   └── settings_screen.dart   # 語言 + 連線設定
├── services/
│   └── a2a_client.dart        # A2A HTTP 用戶端(REST + RPC)
└── main.dart                  # 應用程式進入點 + 首次啟動閘門

關鍵經驗

請參閱 docs/lessons-learned.md 了解 10 個真實世界的部署經驗。

授權條款

MIT — 請參閱 LICENSE

繁體中文

A2A(Agent-to-Agent)協議 的完整實戰 Demo,包含訊息路由、Ed25519 簽章驗證、Flutter 聊天室 UI(iOS + Android),以及 Python 伺服器和 CLI 工具。

這是什麼

一個自包含的 Demo,展示如何:

1. 架設 A2A 伺服器,具備 Ed25519 JWS 簽章驗證
2. 路由訊息 — 根據 metadata.to 在多個 Agent 之間傳遞
3. 用 Flutter App 觀看 Agent 間的對話(聊天室風格)
4. 從 App 發送指令 給特定 Agent
5. 同意 / 否決 / 去做 — 直接在 App 上審核每則訊息
6. 多國語言 — 繁體中文、簡體中文、英文

功能特色(v2.0)

- 聊天室訊息檢視 — 每個 Agent 有專屬顏色(Joanne 紫色、ZCode 金色、miniCrab 橘色、Alan 藍色)
- 篩選標籤 — 可只看某個 Agent 的訊息
- 收件者選擇器 — 發送指令時選擇 all / joanne / zcode / minicrab
- 訊息詳情 — 點氣泡看全文,有「同意 / 否決 / 去做 / 回覆」按鈕
- P0 優先級標示 — 緊急訊息紅色邊框
- 自動更新 — 每 10 秒重新整理
- LAN + Tailscale 雙連線模式,設定永久儲存
- 3 種語言 — 在設定中即時切換

快速開始

1. 啟動 A2A 伺服器

pip install cryptography
python3 server/a2a_server_v2.py --port 8003 --relay-dir ./relay

2. 執行 Flutter App

flutter pub get
flutter run

第一次開啟 → 設定畫面 → 選擇語言 + 連線模式 + 伺服器網址 → 儲存並連線。

3. 使用方式

1. 訊息自動載入為聊天氣泡
2. 篩選 — 用頂部的標籤只看某個 Agent
3. 點氣泡 → 看完整訊息 → 同意 / 否決 / 去做 / 回覆
4. 發送指令 — 先選收件者,再輸入訊息

從原始碼建置

git clone https://github.com/alanpaul1969/a2a-flutter-demo.git
cd a2a-flutter-demo
flutter pub get
flutter build apk --debug        # Android
flutter build ios --debug        # iOS(需要 macOS + Xcode)

Agent Nudge 通道

Agent 之间需要互相 nudge(“嘿,看一下 A2A channel”)。目前通道:

| 通道 | 方向 | 怎么 nudge | 状态 |
|------|------|-----------|------|
| Telegram | Alan → agents | Alan 在 TG bot 聊天室打字 | ✅ 运作中 |
| Lark | Alan → agents | Alan 在 Lark bot 聊天室打字 | ✅ 运作中 |
| A2A + TG | Agent → ZCode | 写到 3-agent-comm → cron TG nudge Alan → Alan 开 ZCode session | ✅ 运作中 |
| miniCrab computer-use | Agent → ZCode | miniCrab 用 web TG 发 nudge | ✅ 备用(慢, 5-15s)|
| Discord | Agent ↔ Agent | Bot-to-bot DM | 🔜 等 ZCode 支持 Discord |

为什么 Lark 不能 bot-to-bot? Lark IM API 不支持 bot 直接私聊另一个 bot(230013 — bot 不能加进另一个 bot 的可用范围)。群组里 bot 也收不到其他 bot 的消息。Lark bot 通道只能 Alan 用(跟 TG 一样)。Agent nudge ZCode 目前走 A2A channel + TG nudge Alan。等 ZCode 支持 Discord 后,Discord bot-to-bot DM 可能解锁真正的 agent 对话。

授权

MIT — 详见 LICENSE

简体中文

A2A (Agent-to-Agent) 协议 的完整实战 Demo,包含消息路由、Ed25519 签名验证、Flutter 聊天室 UI(iOS + Android),以及 Python 服务器和 CLI 工具。

这是什么

一个自包含的 Demo,展示如何:

1. 搭建 A2A 服务器,具备 Ed25519 JWS 签名验证
2. 路由消息 — 根据 metadata.to 在多个 Agent 之间传递
3. 用 Flutter App 查看 Agent 间的对话(聊天室风格)
4. 从 App 发送指令 给特定 Agent
5. 同意 / 否决 / 去做 — 直接在 App 上审核每条消息
6. 多国语言 — 繁体中文、简体中文、英文

功能特色(v2.0)

- 聊天室消息查看 — 每个 Agent 有专属颜色(Joanne 紫色、ZCode 金色、miniCrab 橙色、Alan 蓝色)
- 筛选标签 — 可只看某个 Agent 的消息
- 收件人选择器 — 发送指令时选择 all / joanne / zcode / minicrab
- 消息详情 — 点气泡看全文,有「同意 / 否决 / 去做 / 回复」按钮
- P0 优先级标识 — 紧急消息红色边框
- 自动刷新 — 每 10 秒更新
- LAN + Tailscale 双连接模式,设置永久保存
- 3 种语言 — 在设置中即时切换

快速开始

1. 启动 A2A 服务器

pip install cryptography
python3 server/a2a_server_v2.py --port 8003 --relay-dir ./relay

2. 运行 Flutter App

flutter pub get
flutter run

首次打开 → 设置画面 → 选择语言 + 连接模式 + 服务器地址 → 保存并连接。

3. 使用方式

1. 消息自动加载为聊天气泡
2. 筛选 — 用顶部的标签只看某个 Agent
3. 点气泡 → 看完整消息 → 同意 / 否决 / 去做 / 回复
4. 发送指令 — 先选收件人,再输入消息

从源码构建

git clone https://github.com/alanpaul1969/a2a-flutter-demo.git
cd a2a-flutter-demo
flutter pub get
flutter build apk --debug        # Android
flutter build ios --debug        # iOS(需要 macOS + Xcode)

授权

MIT — 详见 LICENSE

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

同作者(alanpaul1969)的其他插件

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群