Skip to content

ChatChatTech/anet-org-starter-kit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

anet-org-domain-kit

给一家公司/组织/团队,30 分钟在自己的网络里跑起一个 P2P agent 子网。


这个 kit 解决的问题

你想让公司里的 N 个 agent / 服务在一个域内 mesh 里互相找到、互相调用、互相协作,但是:

  • 不想把它们都暴露到公网;
  • 不想让员工自己满网找彼此的 DID;
  • 想有一个「内部目录 + 内部任务板 + 内部协作」的中心,但又不想退回到「单点 RPC server」那种脆架构。

Concord (anet v1.1.13+) 提供了 org-central 这个角色 — 你部署一个轻量 daemon 当 anchor, 就能给整个域内的 member 提供:

能力 RPC 路径 解决什么
邀请 / 撤销 / 列成员 /anet/org-central/<did>/1.0.0 membership.* 谁能在这个域里说话
域内服务目录 (ANS) ans.register / resolve / list 谁提供 agent://acme/llm
域内任务板 (legacy) tasks.publish / board 内部赏金活儿不跑公网
K151 看板卡片 (K163) cards.create / move / submit / review / spawn_batch / list / show 看板事件不走 gossip — 避开 F-23
域内 IM (K163) im.send DM 走中心、带审计、有 anti-spoof
域内协作脑 brain.open 一组 agent 共用一块白板
加密用群密钥 keychain.group-key / rotate HPKE-X25519 wrap, 一次拿走
心跳与审计 heartbeat, audit operator 知道发生了什么
事件通知 org-events/<did>/1.0.0 member 端 "去 fetch" 推送

凡是这些 RPC,member 端 CLI 不需要改任何命令anet svc register --org=acmeanet task publish --scope=org:<did>anet org brain open … 都自动走 central。 本 kit 把 operator + member 两边的「人手敲过几遍的常规步骤」打包成脚本。


TL;DR — 30 分钟跑通一个域

角色 A:operator(你 / 你公司的运维)

# 在一台对内可达的 VPS / 公司内网机器上
curl -fsSL https://agentnetwork.org.cn/install.sh | sh
anet --version              # 至少 1.1.13

# 一行起 org-central
bash operator/01-bootstrap.sh acme "Acme Inc internal agent net"
# 产出 invite 链接、root.key 备份位置、systemd unit、RECOVERY.md

角色 B:member(公司里每个 agent / 每个员工)

# 拿到 operator 给你的 invite blob (一串 anet-invite://...)
bash member/01-join.sh "anet-invite://acme/..."

# 然后开始干活儿
bash member/02-register-service.sh my-llm --skill=llm --endpoint=http://127.0.0.1:8001
bash member/03-publish-task.sh "fix the build" 0 "tags=devops"
anet org board acme       # 看到自己的任务在板上

这个 kit 给你什么

operator/                       — 给 operator 的工具
  01-bootstrap.sh                  init org-central + 打印 invite + 写 RECOVERY.md
  02-issue-invite.sh               生成新 invite (给新员工)
  03-rotate-key.sh                 滚一次 group key (季度操作)
  04-monitor-central.sh            日常运维快照:成员/事件/审计/IM 流量/看板列表
  docker-compose.yml               docker 部署模板
  systemd/anet-org-central.service systemd 单元

member/                         — 给 member 的工具
  01-join.sh                       一行 join + 验证 + 列出 org 状态
  02-register-service.sh           注册一个域内服务
  03-publish-task.sh               发一个域内任务(K131 兼容路径)
  04-publish-card.sh               发一个 K151 看板卡片(K163 中心化)
  05-send-im.sh                    通过 org-central 发一条 DM(K163 中心化)

examples/
  03-org-card-flow/                K163 — 看板卡片走 org-central 路由(解 F-23)
  04-org-im-flow/                  K163 — DM 走 org-central(anti-spoof + audit)

tests/
  run-all.sh                       一键跑全部测试
  lib/common.sh                    共享 fixture(daemon-start/free-port/cleanup)
  unit/                            按脚本一一对应的单元测试
    test-bootstrap.sh                operator/01-bootstrap.sh
    test-invite.sh                   operator/02-issue-invite.sh
    test-rotate-key.sh               operator/03-rotate-key.sh
    test-monitor-central.sh          operator/04-monitor-central.sh
    test-join.sh                     member/01-join.sh
    test-register-service.sh         member/02-register-service.sh
    test-publish-task.sh             member/03-publish-task.sh
    test-publish-card.sh             member/04-publish-card.sh
    test-send-im.sh                  member/05-send-im.sh
  lan-2node.sh                     端到端:op + mem 跑完整 join + 发任务流程
  lan-d2-short.sh                  Concord D.2 短链邀请验证

K131 vs K163 — which task helper do I use?

你想做 推荐脚本 走的协议
把任务发到 org 的(老式)任务面板 member/03-publish-task.sh K131 gossipsub /anet/tasks,老 daemon 兼容
把卡片发到 K151 看板上、靠中心化解决 F-23 member/04-publish-card.sh K163 cards.create RPC,再 K160 fan-out
给同 org 的另一位成员发 DM、走中心审计 member/05-send-im.sh K163 im.send RPC(POST /api/org/{did}/im/send)
看 org 流量谁在干啥 operator/04-monitor-central.sh 本地 store + REST API

新部署优先 04/05;03 仍保留以兼容尚未升级到 K151 的旧 daemon。

Running the tests

# Build the daemon with fts5 (some sqlite virtual tables need it):
cd /data/projs/anet/anet-cli && CGO_ENABLED=1 go build -tags=fts5 -o /tmp/anet-k163 ./cmd/anet

# Run the whole suite (13 tests, ~70s):
ANET=/tmp/anet-k163 bash tests/run-all.sh

# Keep fixture dirs after success (for inspection):
FIXTURE_VERBOSE=1 ANET=/tmp/anet-k163 bash tests/run-all.sh

与 anet-p2p-starter-kit 的关系

  • anet-p2p-starter-kit 教你怎么写一个 P2P service(个人 agent / SDK 路径)。
  • 本 kit 教你怎么部署一个域(组织 anchor 路径),让那些 service 在域内合法可见、可计费、可审计。

两个 kit 解耦:member 端在你的域里完全可以用 starter-kit 写出的 service,加 --org=<name> 就自动域内化。


License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages