押注 DeepSeek,再次出发做 Agent

查看 11|回复 0
作者:echoVic   
前言
过去一年我做了不少 Agent:Blade Code(类 Claude Code 的 CLI )、Blade Agent SDK(抽取出来的通用能力集)。它们都跑在 Claude 、GPT 这类海外模型上。
但有件事一直在我脑子里:DeepSeek 这么便宜、这么能打,我自己却没有一个顺手的、围绕它打磨的终端编码工具。
于是有了 Orca —— 一个用 Rust 写的、DeepSeek 原生的终端 Coding Agent 。
GitHub 地址:https://github.com/echoVic/blade-deepseek
npm install -g @blade-ai/orca
export DEEPSEEK_API_KEY=sk-...
orca exec "fix this test"
已经有人在做,但我还是想做
先说句实在话:DeepSeek 的编程 Agent ,并不是没人做。
官方那份 awesome-deepseek-agent 里就列了好几个终端 Coding Agent——DeepSeek-TUI 、Reasonix 、Deep Code 等等,都各有特点。这个方向不是无人区,已经有一批先行者。
知道这些,我依然决定做,原因有三个:
  • 这个生态还很早。几个先行者各有侧重,远没到"一个工具通吃"的程度,留给后来者的空间还很大。
  • 我想做的点不太一样。比起"能接 DeepSeek 的又一个客户端",我更想做一个能盯着目标自己跑、跑完你还敢信的 Agent 。这部分后面细说。
  • 这是我自己每天要用的工具。哪怕已有不错的选择,亲手做一个完全合自己手的,也值得。

    所以这篇文章不打算说"市面上的都不行,只有我的好"。它们都很好,我也在学。我只是想把自己这一版的取舍讲清楚。
    为什么是 DeepSeek
    我做这个项目的动机其实很简单,就四点:
    1. 我相信 DeepSeek 的发展。 从 V2 到 V4 ,它在推理和代码能力上的进步是肉眼可见的。1M 上下文、原生 reasoning ,这些已经足够支撑一个严肃的 Coding Agent 。
    2. 它足够便宜。 Agent 是 Token 消耗大户——多轮循环、工具结果回灌、长上下文,跑一个稍微复杂的任务动辄几十万 Token 。在某些海外模型上一天就能烧掉不少钱,而 DeepSeek 的价格让"把 Agent 当日常工具用"这件事真正成立。对个人开发者和中小团队,这点很关键。
    3. 围绕它的工具还在早期。 Claude Code 、Codex 、Gemini CLI 都绑死自家模型。DeepSeek 这边虽然有了几个先行者,但生态远没饱和,仍有大量打磨空间——reasoning token 的处理、工具调用的边角行为、上下文压缩策略,都还能针对 DeepSeek 做得更细。
    4. 我想帮国模生态做点事,也想跑通一个商业闭环。 模型再强,也需要好用的上层工具把能力释放出来。与其等,不如自己动手。如果能顺手验证一条"国产模型 + 好工具"的可持续路径,那就更好了。
    Orca 是什么
    Orca 是一个本地终端 Coding Agent ,核心是一个多轮 Agent 循环:
    prompt → 模型 → tool_call → 执行 → 回灌结果 → 下一轮(最多 128 轮)
    它不是 demo ,是冲着"能当主力工具用"去做的。目前已经实现的能力:
    多轮 Agent 循环 + SSE 流式
    完整的 prompt → 推理 → 工具调用 → 执行 → 反馈循环,通过 Server-Sent Events 实时输出 DeepSeek 的 reasoning 和 content 增量,你能看到模型"边想边做"的过程。
    1M 上下文自动压缩
    针对 DeepSeek V4 的百万 Token 上下文做了管理:达到阈值时自动压缩。它不是粗暴截断,而是把对话分成 system / pinned / collapsed / kept 四区,把要折叠的部分交给 DeepSeek 自己去总结,用摘要换回 Token ,重要内容会被 pin 住不动。长任务不会因为上下文爆炸而中断。
    分级审批策略 + 内联 diff 预览
    读操作永远放行;写文件、执行 shell 这类有副作用的动作,会弹审批框,而且会在执行前给文件拍快照、执行后渲染内联 diff ,绿加红减直接显示出来——你看着它到底要改哪几行再决定。还能按工具、按文件分别加白名单。三档模式:
  • suggest —— 交互式确认(默认)
  • auto-edit —— 自动批准编辑
  • full-auto —— 全自动

    工具系统:单一事实源
    每个工具由一份 ToolSpec 描述,声明它的能力(读文件 / 写文件 / 执行 shell / 联网搜索 / 委派子 Agent 等)。审批策略、给模型的 schema 、对模型的可见性、甚至工具结果怎么解读,全部从这份 spec 推导。一处定义,全链路生效;加工具、改权限不用动十个地方。MCP 工具也走同一套治理,是一等公民,不是外挂插件。
    内置工具:read_file、list_files、grep( ripgrep )、bash、edit、write_file、git_status、web_search,以及 subagent、Workflow、update_plan、update_goal。也支持用 TOML 描述符在 ~/.orca/tools/ 下注册自定义工具。
    子 Agent
    同步的子 Agent 循环共享父级的工作区、模型配置和审批策略,跑完把精炼结果交回父级——适合把一个大任务拆给"实习生"去推进。
    持久化目标模式( Persistent Goal )
    这是 Orca 我自己最看重的一块。TUI 里用 /goal 设一个长期目标,Orca 会在每一轮成功后自动开启下一轮,自己往目标推进,直到完成、被阻塞、暂停或达到上限。目标按 session 持久化到磁盘,进程重启、会话 fork 都不丢。模型干完会主动调用 update_goal 标成 complete 或 blocked ,而不是傻跑。
    /goal ship the refactor       # 创建目标并开始
    /goal pause                    # 暂停自动续跑
    /goal resume                   # 恢复
    /goal clear                    # 清除
    会话历史
    文本模式下自动保存 JSONL 转录,支持 list / show / search / rename / archive / delete ,以及 resume / fork 续接和 zstd 压缩。
    orca history list
    orca exec --resume latest "continue the refactor"
    orca exec --fork latest "try another approach"
    工作流 + Hooks
    orca workflow run 跑 JavaScript 编写的动态工作流; Hooks 系统支持 session_start、pre_tool_use、pre_compact 等事件,可以 deny / modify / inject ,把 Orca 嵌进你自己的流程里。
    验证门
    orca exec --verifier "cargo test" "fix the failing test"
    干完活后跑一遍你指定的验证命令,测试过了才算成功。Agent 说"我搞定了"和"测试绿了"是两回事。
    为什么用 Rust
  • 单二进制分发:npm 、curl 、GitHub Releases 三条线,装好即用,没有运行时依赖。
  • 启动快、占用低:当作日常命令行工具,冷启动几乎无感。
  • 稳定:定位是一个能长期维护的基础设施,而不是快速试错的玩具。

    支持的平台:macOS ( Apple Silicon / Intel )、Linux ( x64 / ARM64 )。
    快速开始
    # 安装
    npm install -g @blade-ai/orca
    # 或
    curl -fsSL https://orcaagent.dev/install.sh | sh
    # 配置
    export DEEPSEEK_API_KEY=sk-...
    # 跑任务
    orca exec "fix this test"
    orca exec --approval-mode full-auto "refactor the auth module"
    orca exec --model deepseek-v4-pro "explain this codebase"
    orca exec --verifier "cargo test" "fix the failing test"
    # 直接进交互式 TUI
    orca
    模型默认 auto:主循环用 deepseek-v4-pro,辅助任务用 deepseek-v4-flash,在效果和成本之间取平衡。
    配置文件放在 ~/.orca/config.toml:
    model = "auto"
    api_key = "sk-..."
    base_url = "https://api.deepseek.com"
    适用场景
    [ol]
  • 日常编码:修 bug 、写测试、重构、解释代码库
  • 成本敏感的高频使用:把 Agent 当作每天都开的工具,而不是偶尔奢侈一下
  • 长任务:依赖持久化目标模式 + 1M 上下文跑多轮自动推进
  • 嵌入自有流程:通过 JSONL 事件流、Hooks 、工作流接进 CI 或脚本
    [/ol]
    关于未来:不止 coding
    Coding 是我选的第一个切口,但不是终点。
    你能看到,Codex 、Claude 这些团队都在把 Agent 从"写代码"往更广的"完成工作"延伸——读写文档、跑流程、调工具、查资料、把一连串琐碎任务自动接起来。代码只是 Agent 能力最容易被验证、也最早跑通的那块。
    我的布局也是这样:先用 coding 把内核打磨扎实——多轮循环、工具治理、上下文管理、持久化目标、可信交付——这些能力本来就不是编程专属的。一个能盯着目标自己跑、改东西前给你看 diff 、跑完帮你验证的 Agent ,换个工具集和场景,同样能去做办公和更一般的"work"。
    所以 Orca 现在的架构是按"通用 Agent 内核 + 可替换工具层"来设计的:ToolSpec 驱动的工具系统、能力分级审批、MCP 一等公民、Hooks 接入外部流程——这些都不绑定编程。今天它帮你写代码,往后它会帮你处理更多本该自动化的工作。
    这部分还在路上,但方向我想先讲清楚:Orca 的目标,是一个围绕 DeepSeek 的通用工作 Agent ,coding 是它的起点。
    总结
    DeepSeek 的编程 Agent 已经有人在做,做得也不错。但这个生态还早,我也有自己想走的路:比起"又一个能接 DeepSeek 的客户端",我更想做一个能盯着目标自己跑、跑完你还敢信的 Agent——长程自主、能力治理、可信交付,这是 Orca 真正下注的方向。
    基本盘它也都有:
  • DeepSeek 原生——围绕它的推理和工具调用语义打磨,而不是套一层通用兼容封装
  • 能用——完整的多轮循环、审批、上下文管理、会话历史,不是 demo
  • 便宜——让"把 Agent 当日常工具"在成本上真正成立
  • ——Rust 单二进制,装好即用

    如果你也在用 DeepSeek 写代码,欢迎试试 Orca ,也欢迎 Star 、Issue 和 PR 。这条路,我想和更多人一起走。
    相关链接
  • Orca: https://github.com/echoVic/blade-deepseek
  • NPM: @blade-ai/orca
  • 官网 / 安装脚本: orcaagent.dev
  • awesome-deepseek-agent: https://github.com/deepseek-ai/awesome-deepseek-agent
  • Blade Code: https://github.com/echoVic/blade-code
  • Blade Agent SDK: https://github.com/echoVic/blade-agent-sdk
  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部