运行时模型
客户端、Go 控制面、Rust 能力内核与 Zig 工具链组成的分层架构。
Carina 是分层 Agent 运行时。每层只承担一种职责,并通过明确协议调用下一层;这样客户端可以替换,模型可以切换,而权限与审计边界保持稳定。
| 层 | 语言 | 职责 |
|---|---|---|
| Agent Surface | Go(daemon 内) | Agent 循环、提示词和 reasoner backend |
| Client Surfaces | TS / Python / Go | CLI、TUI、IDE、Web 与 SDK,只渲染 JSON-RPC |
| Control Plane | Go | daemon、RPC、会话、调度、worker 与模型路由 |
| Capability Kernel | Rust | 权限、策略、审计、事务补丁和 WASM 插件 |
| Native Toolchain | Zig | scan、grep、diff、patch、process runner 与 pty |
Client Surfaces ──JSON-RPC──▶ Go Control Plane(Agent loop) ──Capability API──▶ Rust Kernel ──Native Calls──▶ Zig Tools- Agent 不直接访问系统资源;读文件、执行命令、联网、读密钥和持久记忆写入都是能力请求。
- 每个副作用先经过能力内核,按会话 profile 产生
PermissionDecision。 - 每次执行都写入追加式 Event Log,会话可仅凭事件回放。
- 每个补丁按 Proposed → Validated → Approved → Applied → Verified → Committed 流转,并保留回滚指针。
- 工具必须声明权限;未声明的能力使用会产生
PolicyViolation。 - 本地单机是默认形态,远程 worker 是扩展;CLI 与 IDE 都只是同一 JSON-RPC 的客户端。
- 云身份与同步属于产品边界,本地 runtime 始终是仓库动作的最终权威。
Go 控制面
Section titled “Go 控制面”go/daemon:daemon 生命周期、RPC、恢复、Agent loop 与受治理本地记忆。go/rpc:JSON-RPC 2.0 实现,与protocol/jsonrpc注册表一致。go/session-store:会话状态和追加式 JSONL 事件日志。go/scheduler/go/worker:优先级、并发和本地/远程/CI worker。go/model-router:provider fallback、速率限制、token 用量与 streaming。go/kernel:Rust capability kernel bridge。go/mcp/go/mcpserver:受治理的 MCP 管理器与服务端。
Rust 能力内核
Section titled “Rust 能力内核”carina-kernel:所有副作用能力的类型与 facade。carina-policy:read-only、safe-edit、full-workspace、ci-runner等 profile。carina-patch:补丁事务、冲突检测和回滚。carina-audit:事件模型;protocol/events/events.json是权威。carina-plugin-runtime:只允许 manifest 声明能力的 WASM host。
Zig 原生工具链
Section titled “Zig 原生工具链”carina-scan、carina-grep、carina-diff、carina-patch-native、carina-run、carina-pty 输出机器可读 JSON,并且不能绕过 kernel policy。
一次任务如何流动
Section titled “一次任务如何流动”用户提示 → daemon 建会话 → Agent 调模型 → 模型请求 FileRead→ Rust 内核检查策略 → Zig 扫描/读取 → 模型提出补丁→ PatchTransaction 与审批 → Zig 应用 → daemon 请求 CommandExec 跑测试→ Event Log 记录全部动作 → 用户检查或回滚| 关注点 | MVP 选择 |
|---|---|
| IPC | stdio / unix socket 上的 JSON-RPC 2.0 |
| 存储 | JSON 状态、JSONL 事件、文件快照;carina-index 使用 SQLite |
| 插件 | manifest 声明权限的 WASM |
| 操作 | 目标 |
|---|---|
| CLI 冷启动 | < 100ms |
| CLI 热启动 | < 30ms |
| 10k 文件工作区扫描 | < 1s |
| 中型仓库 grep | < 300ms |
| 单文件补丁应用 | < 50ms |
- 架构:
docs/architecture.md - 产品定位:
docs/product.md - 能力与文档地图:
apps/docs/FEATURE_MAP.md
这个页面有帮助吗?
哪里有问题?
感谢反馈。
本次会话中每个页面仅记录一次投票。