跳到主要内容

单文件扩展

添加新能力最短的方式是一个包目录。把程序逻辑放在普通可执行文件里,把装配逻辑放在一个 cortexfs.toml 文件里:

review-kit/
├── cortexfs.toml
└── bin/
├── review-agent
└── git-summary
schema = "cortexfs.package/v1"
name = "review-kit"
version = "0.1.0"

[[tools]]
name = "git.summary"
run = "bin/git-summary"
description = "Summarize the current Git worktree"
schema = { type = "object" }

[[agents]]
name = "kit_reviewer"
run = "bin/review-agent"
model = "main"
tools = ["git.summary"]
instructions = "Review changes, use the tool when useful, and cite evidence."
parent = "agent:architect"

只需一条命令安装:

ctx install ./review-kit

ctx install 会发现 cortexfs.toml、哈希每个可执行文件、校验整包清单,并通过现有原子对象安装器发布每个对象。若挂载树有固定来源代际,请加 --source PATH,若对象只对当前用户可见请加 --tier user

ctx install ./review-kit --source /var/lib/cortexfs/storage/current

当有特权安装器面向其他用户时,请在包内显式声明运行身份,不要继承安装者的 root 凭据:

[[agents]]
name = "kit_reviewer"
run = "bin/review-agent"

[agents.identity]
uid = 1000
gid = 1000
groups = [1000]

run 项就是扩展入口。工具实现 Tool SDK,代理实现 Agent SDK;两者都只是普通可执行文件,因此 Rust、Shell 或其他主机语言都能实现。SDK agent 从标准输入读取一个运行时 Envelope,向外输出 JSONL 事件;它可能产出一次工具调用,由宿主执行权限校验并将观察结果回写给下一步。这就是自定义执行循环,不依赖常驻插件守护进程。

拓扑关系仅由 parent 指定。每个代理通过 agent:NAME 声明父节点(session:run: 仍可选):

[[agents]]
name = "planner"
run = "bin/planner"
parent = "agent:architect"

[[agents]]
name = "builder"
run = "bin/builder"
parent = "agent:planner"

包文件是编排输入,不会创建第二个 /ctx 命名空间。安装后的持久产物仍然只有 agent/<name>.d/*tool/<name>.d/*、普通 session 文件和现有套接字。ctx object install 命令仍保留给需要完整清单控制的包作者;大多数用户不需要直接接触它。

刷新是显式行为:要么提交新包,要么重启消费该代际的进程。ctx install 不会启动文件监听、轮询循环或后台插件服务。