-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
目标:以 Core/Tools 为中心,形成可复用的 Agent 能力层,UI 只是薄壳。后续 CLI(Ink/React)、桌面(Electron)、Web/REST 都复用同一核心能力,避免重复造轮子。
核心原则
- 协议与契约先行:优先完善 Core 的接口(Session/Turn、事件、工具协议、token 预算、hook)和 Tools 契约,UI 仅消费这些接口。
- 无 UI 耦合:Core 不依赖 stdin/stdout/DOM,只暴露纯函数/事件流;Tools 也保持无 UI 偏好。
- 可观察性优先:统一 JSONL 事件(assistant/action/observation/final/turn/session),便于任意前端/后端复用日志、调试。
- 安全与确定性:工具输入校验、路径规范化、外部依赖前置检测(如 rg),避免 UI 层重做防护。
接口/契约要点
- Session API:
createAgentSession(deps, options)->{ runTurn, close, history };事件统一 JSONL 字段。 - 工具注册表:
ToolRegistry(名称 -> ToolFn),输入为字符串(JSON),输出短文本。 - Prompt/Parser:保持可替换(XML 现行版本),为后续 JSON 工具协议预留切换点。
- 配置注入:模型参数、tokenizer、预算、工具开关通过 options/deps 注入,不写死在 Core。
Metadata
Metadata
Assignees
Labels
No labels