调用 Akashic
定位
把已运行 gateway 中固定模型、固定 workspace 的 Akashic 作为可程序化调用 Agent。Thread 是持久
session,Turn 是一轮对话;CLI、SDK 和 JSON-RPC 与 Telegram/WebUI 共用正式 Agent runtime、
历史、记忆、工具和插件。
这不是模型/profile 切换能力,也不为每次调用启动新 runtime。
硬边界
- 调用方必须在目标 Akashic runtime 外部;gateway 应已运行。不要为调用再启动同 workspace owner。
- 当前 Akashic turn 内禁止同步执行同 workspace 的
python main.py exec:全局串行 admission 会让 当前 turn 等待自己释放执行权,形成自死锁。此时只生成外部调用命令或代码,不要代为执行。 - Akashic 调用另一 Akashic 时,目标必须是不同 workspace、不同 runtime endpoint。
- 自动化续聊必须保存并传入明确
threadId;禁止使用--last一类依赖隐式最近会话的选择方式。 - 恢复
telegram:*thread 只复用历史。程序化结果返回调用方,不会自动发送到 Telegram。
选择入口
- 外部 Codex、shell、cron:优先 CLI;机器消费用
--json,只取回答用--final-only。 - Python 服务:优先
akashic_sdk,保存thread.id后用thread_resume()持续对话。 - 非 Python 集成:使用 JSON-RPC 2.0 NDJSON;先
initialize,再发initialized。
先确认调用方掌握 repo 路径、固定 endpoint,以及续聊所需的明确 threadId。新建 session 后立即把
返回的 thread ID 持久化,再发后续 turn。连接断开不会取消服务端 turn,可重连后用 turn/read 查询。
可复制的 CLI、Python SDK 和原始 JSON-RPC 示例见
references/external-caller.md。可直接运行的 Unix socket 原始协议客户端见
examples/raw_jsonrpc_uds.py。