- 闸门①分布式 PASS(带 caveat):RedisMessageBus 跨 2 进程 3 agent 协作实测跑通; 1.x RpcAgent/to_dist 已删,framework 原生多 worker serving 仍 Beta(#1722/#1868,取证未亲测) - 闸门②持久化 PASS:AgentState→Redis,os._exit 与真 kill -9 两种硬崩后新进程恢复、记忆 3/3 无损 - 闸门③L1 开销 PASS:最小 Agent vs 裸 openai 本地+24.4ms/输入+11tok(几乎全 system_prompt),§5-⑤ 未被迫触发 - §5 无换轨触发器成立 → 继续 AgentScope,锁 2.0.1 - durable:VERDICT.md(含 §2 控制面↔worker 契约形状)+ artifacts 实测数据 - 关键坑:本机代理未旁路 Tailscale 网关致 SDK 全 502(_common 已修) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
spike: AgentScope 2.x 落地三闸门验证(W-G1)
隔离 spike,代码可丢弃质量;结论看
VERDICT.md(durable)。 任务源:docs/agent-specs/2026-06-12-agentic基建框架选型-review.md。不改动任何生产代码。
验证 AgentScope 2.0.1 三件能力(任一验不过即触发 §5 换轨): ①分布式(≥2 worker 进程多 agent 协作)②持久化/恢复(中断→恢复)③L1 退化开销。 结论:三闸门均 PASS → 继续 AgentScope,不换轨(详见 VERDICT)。
复现步骤
cd spikes/agentscope-wg1
# 1) venv + 锁版本安装(uv;~13s)
uv venv .venv --python 3.12
uv pip install -p .venv/bin/python 'agentscope[service,storage]==2.0.1'
# 或严格复现:uv pip install -p .venv/bin/python -r requirements.lock
# 2) 起隔离本地 Redis(端口 6399,数据/日志在 .redis-data,已 gitignore)
redis-server --port 6399 --daemonize yes --dir "$PWD/.redis-data" --save "" --appendonly no \
--logfile "$PWD/.redis-data/redis.log" --pidfile "$PWD/.redis-data/redis.pid"
# 3) 模型出口密钥(走环境变量,绝不入库)
export NEWAPI_KEY=<向创始人要 new-api key>
# ⚠️ 关键坑:本机有 HTTP(S)_PROXY=127.0.0.1:7897,会把 SDK 发往网关的请求经代理 → 502。
# src/_common.py 已自动把网关 host 并入 NO_PROXY 修复;手动跑别的脚本时也请:
export NO_PROXY="localhost,127.0.0.1,::1,.local,100.64.0.8"; export no_proxy="$NO_PROXY"
# 4) 跑三闸门
.venv/bin/python src/gate3_overhead.py # 闸门③ L1 开销(写 artifacts/gate3_overhead.json)
.venv/bin/python src/gate2_persist.py run1 --crash-after 3 # 闸门② run1:注入+落盘+os._exit 硬崩
.venv/bin/python src/gate2_persist.py run2 # 闸门② run2:新进程恢复,判 PASS
.venv/bin/python src/gate1_distributed.py worker W1 & # 闸门① 进程1
.venv/bin/python src/gate1_distributed.py worker W2 & # 闸门① 进程2
.venv/bin/python src/gate1_distributed.py coordinator # 闸门① 播种+收口+判定
# 5) 清理
redis-cli -p 6399 shutdown nosave # 或 kill $(cat .redis-data/redis.pid)
文件结构
| 文件 | 作用 |
|---|---|
VERDICT.md |
durable:三闸门 pass/fail+实测数据+坑+go/换轨结论+§2 worker 边界契约 |
src/_common.py |
公共:构建指向 new-api 的 OpenAI 兼容模型客户端 + 代理旁路修复 |
src/gate1_distributed.py |
闸门①:2 进程 3 agent 经 RedisMessageBus 协作 |
src/gate2_persist.py |
闸门②:AgentState→Redis,崩溃/kill -9 后恢复 |
src/gate3_overhead.py |
闸门③:裸 openai vs 框架模型层 vs 最小 Agent 开销对照 |
artifacts/*.json |
本机实测原始数据(证据) |
requirements.lock |
锁版本全量(92 包) |
环境(实测)
Apple M1 Pro 32GB · Python 3.12.13 · agentscope==2.0.1 · openai==2.41.1 · redis(py)==8.0.0 / redis-server v8.8.0。
模型:deepseek-v4-flash(L1)经 new-api 网关 http://100.64.0.8:3000/v1。