# Akashic Call

> 指导 Codex 或其他外部程序调用已运行的 Akashic，并用明确 thread ID 持续对话。当用户说调用 akashic、程序化调用 Akashic、从 Codex 调用 Akashic、外部自动化调用、复用 Akashic session/thread、继续 Akashic 会话时使用。

- Skill: `kachofugetsu09/akashic-call` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add kachofugetsu09/akashic-call`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kachofugetsu09/akashic-call/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: kachofugetsu09 (https://skillmd.com/u/kachofugetsu09)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/kachofugetsu09/akashic-call

---


# 调用 Akashic

## 定位

把已运行 gateway 中固定模型、固定 workspace 的 Akashic 作为可程序化调用 Agent。`Thread` 是持久
session，`Turn` 是一轮对话；CLI、SDK 和 JSON-RPC 与 Telegram/WebUI 共用正式 Agent runtime、
历史、记忆、工具和插件。

这不是模型/profile 切换能力，也不为每次调用启动新 runtime。

## 硬边界

1. 调用方必须在目标 Akashic runtime 外部；gateway 应已运行。不要为调用再启动同 workspace owner。
2. 当前 Akashic turn 内禁止同步执行同 workspace 的 `python main.py exec`：全局串行 admission 会让
   当前 turn 等待自己释放执行权，形成自死锁。此时只生成外部调用命令或代码，不要代为执行。
3. Akashic 调用另一 Akashic 时，目标必须是不同 workspace、不同 runtime endpoint。
4. 自动化续聊必须保存并传入明确 `threadId`；禁止使用 `--last` 一类依赖隐式最近会话的选择方式。
5. 恢复 `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`](references/external-caller.md)。可直接运行的 Unix socket 原始协议客户端见
[`examples/raw_jsonrpc_uds.py`](examples/raw_jsonrpc_uds.py)。


