【开源自荐】Gold Band--针对Coding Agent的桌面端Harness应用

本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容: 我的帖子已经打上 开源推广 标签: 是 我的开源项目完整开源,无未开源部分: 是 我的开源项目已链接认可 LINUX DO 社区: 是 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是 以上选择我承诺是永久有效的,接受社...
【开源自荐】Gold Band--针对Coding Agent的桌面端Harness应用
开源自荐】Gold Band--针对Coding Agent的桌面端Harness应用
本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:
  • 我的帖子已经打上 开源推广 标签:
  • 我的开源项目完整开源,无未开源部分:
  • 我的开源项目已链接认可 LINUX DO 社区:
  • 我帖子内的项目介绍,AI生成、润色内容部分已截图发出:
  • 以上选择我承诺是永久有效的,接受社区和佬友监督:

以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出


各位大佬们,大家好,新人刚加入linux.do社区,很期待后面在社区中和大家多多交流。

本次发帖是为了向大佬们介绍我目前在做的工具:Gold Band,名称来源于金箍的英文,用意也是源于金箍,AI很强大,但就像孙悟空带上金箍才能成为斗战胜佛(表达可能不恰当,但用意大佬们能领会即可)。

做这个工具的初衷也是为了方便自用,在过往我的AI CODING历程中,碰到过一些问题:

  1. 长程任务虽然存在subagent、agent team等分治协作策略,但对于主会话的orchestrator来说,一旦任务周期过长,还是会出现编排错误或者orchestrator直接自己下场干活的问题。

  2. 使用ralph loop等工具,但存在agent又当运动员又当裁判的问题,缺少交叉性验证,无法保证最后completed的输出到底是否可靠。

  3. skill、constitution、mcp等未形成统一加载标准,各个agent自治规范,维护起来比较麻烦

  4. claude code的subagent无法继承会话的skill列表,只能由主agent告知或提前定义好,所以subagent的能力受限(这一条问题在最新版本已经解决了,测试版本为v2.1.153,但在当时让我觉得与其等待agent厂商不知何时的修复,不如自己做外挂解决好了)

同时我也一直相信,AI应用最好的方式,就是用工程化手段降低AI的不稳定性,发挥AI的创造性,所以基于上面的问题和理念,我想制作一个可以使用工程化手段稳定AI工作流且统一管理Agent所需的上下文的工具,或者再简单一点,可以理解为一个本地 Agent 工作流版的 Dify,这个工具就是现在的Gold Band。

github地址:GitHub - diodeme/Gold-Band: Desktop harness for orchestrating and observing local AI-agent workflows. · GitHub
技术栈:Rust + React + Tauri 2 + Agent Client Protocol

功能介绍

任务编排

image

用户可在创建任务时,为任务指定具体的工作流。
工作流可直接在画布中可视化创建或复用现有模板。
Gold Band系统也内置了一套工作流。

一些概念

节点:每个节点代表一次Agent执行,用户可以在agent管理中进行Agent配置,理论上支持ACP的agent类型都可以调起,但是由于目前每个agent对于ACP的支持程度各异,所以我们只会在完整测试通过后才加入到支持列表中,目前Claude Code是已经验证通过了的。

角色:每个节点内置的角色,会追加到系统提示中(目前有部分ACP Agent不支持追加system prompt,则会追加到user prompt中(正在探索是否有更好的方式)) ,用户可在上下文管理中进行角色的编辑,Gold Band内置了一套角色,参考本文后续的介绍。

权限模式:系统在加载ACP时握手阶段获取到的ACP Agent支持的权限模式列表,用户可以在节点设置中进行选定。

结果判定:关于如何决定节点的分支走向。Gold Band提供两种方式:1.人工check,人工点击成功或者失败作为该节点的结果,适用于方案节点等需要人工审核的场景。2.AI输出验证,指定Agent输出的DSL和结果判定表达式,系统自动根据表达式判断节点结果。比如:

//DSL
{
  "reason": "String",
  "result": "boolean"
}
//表达式
$.result == true

:画布中点击边,即可对边进行修改,选中目标和session方式(new代表新建session,continue代表在原session上继续)

image

内置工作流:Gold Band目前内置的工作流如下:

flowchart LR
      PLAN["plan<br/><i>方案</i><br/>manual_check"] -->|success| DEV["dev<br/><i>开发</i>"]
      DEV -->|success| REVIEW["review<br/><i>审查</i><br/>output: review-result"]
      REVIEW -->|success| TEST["test<br/><i>测试</i><br/>output: test-result"]
      REVIEW -->|"failure<br/><i>continue</i>"| DEV
      TEST -->|success| ACCEPT["accept<br/><i>验收</i><br/>output: accept-result"]
      TEST -->|"failure<br/><i>continue</i>"| DEV
      ACCEPT -->|success| CLEANUP["cleanup<br/><i>清理</i>"]
      ACCEPT -->|failure| NEW_ROUND["$new-round<br/><i>新轮次</i>"]
      CLEANUP -->|success| END["$end"]

比较重点的是审查和测试不通过会回环到开发节点,用continue的方式进行修复。
验收节点会验证需求是否真的完成了,未完成会输出报告并进入下一轮round。
验收后会有clean节点对过程产物进行清理并持久化到项目目录下。
用户也可以完全不用该内置工作流,自行新增偏好的工作流。

任务执行

image

用户在任务目录下点击新增run即可对该任务发起一次执行
用户可以对一个需求发起任意多次执行
发起执行后,用户可以在run详情中观察每一轮round具体的执行情况

一些概念

attempt:节点对回环为一次attempt,比如测试-failure->开发算一次attempt,工作流中可以限制运行时每个节点对attempt的最大次数,超过次数则拒绝。

round:节点可指定结束状态开启一轮新的round,新的round会从头执行工作流,并在系统提示中告知agent当前轮次和上轮产物目录,工作流中可以限制运行时round的最大次数,超过次数则拒绝。

产物目录:过程产物全部放在~.gold-band\projects<project-path>下面
一个实际的产物目录如下

//artifacts
~\.gold-band\projects\D--Projects-code-ai-Gold-Band\tasks\task-001\runs\run-001\rounds\round-001\nodes\开发\attempt-001\artifacts
//attachments
~\.gold-band\projects\D--Projects-code-ai-Gold-Band\tasks\task-001\runs\run-001\rounds\round-001\nodes\开发\attempt-001\attachments

artifact: 有明确输出要求的节点,系统会自动把节点的输出放置于artifact下面,参考结果判定这一概念中的AI输出验证。

attachments:节点可自由输出文件、报告的目录,比如测试报告之类的都在这里

会话观测

image

节点运行中,用户可以在此观察会话实时运行状态,当然也可以在会话结束后进入对应的cli查看。
节点执行完后,用户依然可以继续在该窗口对话,会使用continue方式继续调用agent。
continue方式

一些概念

系统提示:展示Gold Band运行时追加的system prompt
原始帧:ACP会话的原始流,用于问题排查

Agent管理

image

使用ACP方式拉起agent进行会话,可在此页面进行配置和环境诊断
虽然理论上支持所有ACP兼容agent,但是出于测试严谨性,现阶段仅推荐先用claude code

上下文管理

image

可在此进行上下文管理,目前仅支持角色管理,后续会考虑扩展skills、rules等能力
内置角色无法修改、删除,但可以修改后另存为自定义角色

设置

image
image
image
目前设置支持中、英文切换,主题、字体切换,以及更新机制

使用本地claude:这是一个临时开关,后续会考虑优化,打开使用本地的claude code,关闭claude code acp组件会拉取claude code sdk中携带的claude.exe

后续安排

目前Gold Band其实依旧处于开发者预览阶段,目前为止的版本虽核心链路已经能够跑通,但是产品体验上就本人看来依然还有诸多需要优化的点。所以本次推广,

第一是希望mvp版本也能先帮助到和我有一样问题的佬友们,佬友们可以看看方向是否值得继续打磨,欢迎提 issue 或直接喷我哪里不好用。

第二是在此向佬友们同步下后面的开发计划,后续除了我之外,也会有一个很小的团队兼职参与维护。当前阶段我们会优先处理影响核心使用路径的问题,并根据真实反馈补充事项或调整后续优先级。目前暂定的待办项如下:

高优先级处理

  1. 多agent支持,优先测试跑通codex\cursor\gemini cli\opencode的集成,视情况增加更多agent。
  2. 系统通知能力,agent请求权限、工作流报错时进行系统通知,设置中可选关闭。
  3. 支持自适应工作流编排与并发执行:
  • 支持节点级并发:一个节点可以同时分发到多个后续节点,并行处理不同子任务;可在实验室功能中配置最大并行数。
  • 支持需求级并发:一次导入多个需求后,可让多个需求复用同一套工作流并行执行;可在实验室功能中配置需求并行数。
  • 支持 AI 动态路由:工作流执行过程中,由 AI 根据当前任务目标、上下文和中间结果,动态决定下一步应进入哪些节点、拆分哪些子任务,以及是否并行执行。

中优先级处理

  1. 增加对skill的支持与管理
  2. 增加对mcp的支持与管理
  3. 优化ACP会话观测窗口的性能表现,样式优化,使用体验,修复一些已知问题
  4. 增加指标统计能力,包括会话用时、token消耗量等,提供数据看板。校对目前会话用时的准确性。

写在最后

Gold Band 目前还处在很早期的阶段,肯定还有不少粗糙、不合理甚至跑不通的地方。但这个项目不是为了蹭概念做出来的,而是我自己在长期使用 AI Coding 时确实遇到了一些问题,才一步步把它做成了现在这个 MVP。

我个人一直觉得,AI Agent 本身很强,但真正要在复杂任务里稳定发挥作用,还是需要工程化的约束、编排、验证和观测。Gold Band 想做的事情,就是把这些能力尽量整理成一个本地可用、可配置、可持续演进的工具。

如果你也对这个方向感兴趣,欢迎试用、提 issue、提建议,或者直接指出哪里设计得不合理。

感谢各位佬友看到这里,也欢迎大家轻喷重喷。只要问题真实,对我来说都很有帮助。

4 个帖子 - 2 位参与者

阅读完整话题

来源: LinuxDo 最新话题查看原文