实战从零开始构建一个Coding Agent:Violin(速查)

原文:[[实战从零开始构建一个Coding-Agent-Violin]];作者酒米;得物技术;发布时间 2026-08-05。

一句话总结

Coding Agent 的底层是一个可控循环:问模型、执行工具、把结果回写上下文、继续询问;模型适配、工具、记忆、技能、插件和协议都是围绕这个循环增加工程能力。

8 个节点

节点 速查定义
Agent Loop 无工具调用则结束,有工具调用则执行并回写结果。
Model Adapter Model.complete() 隔离不同 LLM Provider 的 API 差异。
Tool Registry 用名称、描述、JSON Schema 和执行函数管理工具。
Session 用 JSONL 持久化消息,以 parent_id 组织会话树。
Context Compaction 超过 token 预算时摘要旧消息,保留近期上下文。
Resources 加载 AGENTS.md、CLAUDE.md 和 SKILL.md 注入 system prompt。
EventBus 通过 agent/session/compaction 回调槽扩展和拦截运行。
TCP JSON Lines 让 Zig 服务端与 Python TUI 客户端通过协议解耦。

架构分层

  1. 模型适配层:统一 OpenAI / Anthropic 的请求体、tool call 和 SSE 流。
  2. agent-core:只负责模型调用、工具判断、执行和错误重试。
  3. product 层:负责 Session、ContextOverflow、compaction 和内存管理。
  4. 横向扩展:Tool Registry 提供行动能力,Resources 提供规则与技能,EventBus + Lua 提供插件能力。
  5. 客户端边界:Zig daemon 发送握手、聊天和流式事件,Python TUI 只消费协议。

关键参数

生产边界

相关链接