<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>多 Agent | Francis Du</title>
    <link>https://francisdu.com/tags/%E5%A4%9A-agent/</link>
      <atom:link href="https://francisdu.com/tags/%E5%A4%9A-agent/index.xml" rel="self" type="application/rss+xml" />
    <description>💻Data Engineer | 🦀 Rustacean | 📷 Photographer | 🤖Vibe Coder</description>
    <generator>Hugo 0.166.0</generator><language>zh-CN</language><copyright>© Francis Du</copyright><lastBuildDate>Fri, 02 Oct 2026 21:45:00 +0800</lastBuildDate>
    <item>
      <title>wcode 0.9.0</title>
      <link>https://francisdu.com/blog/wcode-v0-9/</link>
      <pubDate>Fri, 02 Oct 2026 21:45:00 +0800</pubDate>
      <guid>https://francisdu.com/blog/wcode-v0-9/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://wcode.francis.run/&#34;&gt;&lt;figure class=&#34;content-image&#34;&gt;&lt;img src=&#34;https://francisdu.com/img/wcode/wcode-logo.svg&#34; alt=&#34;wcode&#34;loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/figure&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;wcode 0.9.0 增加了多 Agent 任务领取和改动验收，重新整理了 Web 与终端工作台。任务可以分配写入范围，检查结果会绑定代码版本，失败和待处理项也有了统一入口。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://francisdu.com/blog/what-is-wcode/&#34;&gt;wcode&lt;/a&gt; 是用 Rust 编写的 Coding Agent 仓库工具，通过 MCP 接入 Codex、Claude Code 等编码助手。它负责读代码、查符号、带版本检查地修改文件、运行验证和保存结果，模型由编码助手提供。&lt;/p&gt;
&lt;h2 id=&#34;把做完了落到当前代码上&#34;&gt;把“做完了”落到当前代码上&lt;a class=&#34;heading-anchor&#34; href=&#34;#%e6%8a%8a%e5%81%9a%e5%ae%8c%e4%ba%86%e8%90%bd%e5%88%b0%e5%bd%93%e5%89%8d%e4%bb%a3%e7%a0%81%e4%b8%8a&#34; aria-label=&#34;章节链接：把“做完了”落到当前代码上&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;0.9.0 增加了原生 Change Acceptance 这条流程。它把当前改动、项目要求和已经执行的检查放在同一份记录里，给出还缺什么。&lt;/p&gt;
&lt;p&gt;例如，一个任务要求修改接口，同时通过 Rust 测试和静态检查。Agent 只跑了测试，记录里就仍然缺静态检查。检查都跑过，但代码随后又变了，也得重新判断这些结果是否适用。需要独立审查时，Worker 自己写一句“已审查”不能补上那一步。&lt;/p&gt;
&lt;p&gt;这份记录绑定 Git 的 base、head、tree、index 和工作区状态，也保留设计版本、检查计划与每项检查的实际结果。读记录时能区分“没有检查”“执行失败”“结果过期”和“还在等审查”。这些情况的下一步不同，挤成一个红点没有多少用。&lt;/p&gt;
&lt;p&gt;CLI 可以直接查看它：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wcode acceptance inspect --base &amp;lt;完整 base SHA&amp;gt; --head &amp;lt;完整 head SHA&amp;gt; --json
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wcode acceptance inspect --base &amp;lt;完整 base SHA&amp;gt; --head &amp;lt;完整 head SHA&amp;gt; --check
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wcode acceptance history --json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;--check&lt;/code&gt; 只有在当前原生记录为 &lt;code&gt;ready&lt;/code&gt; 时才成功。新仓库如果没有启用项目 Policy，拿到的是 &lt;code&gt;incomplete&lt;/code&gt; 和 &lt;code&gt;policy_inactive&lt;/code&gt;，命令不会顺便替你启用策略。&lt;code&gt;inspect&lt;/code&gt; 用来读状态；真正执行项目要求的检查用 &lt;code&gt;acceptance verify&lt;/code&gt;。&lt;/p&gt;
&lt;h2 id=&#34;几个-agent先分清谁能改哪里&#34;&gt;几个 Agent，先分清谁能改哪里&lt;a class=&#34;heading-anchor&#34; href=&#34;#%e5%87%a0%e4%b8%aa-agent%e5%85%88%e5%88%86%e6%b8%85%e8%b0%81%e8%83%bd%e6%94%b9%e5%93%aa%e9%87%8c&#34; aria-label=&#34;章节链接：几个 Agent，先分清谁能改哪里&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;原来把需求拆成几个任务，仍然可能撞在同一个文件上。说“你写实现，他补测试”不够精确：两个人都可能顺手改入口、配置和依赖。&lt;/p&gt;
&lt;p&gt;Worklist 现在可以给任务声明 &lt;code&gt;write_paths&lt;/code&gt;。主 Agent 拆任务时，把要写的目录一起分出去；纯审查任务传空数组。Worker 用 &lt;code&gt;worklist_claim&lt;/code&gt; 领取，拿到独立令牌和交接上下文。另一个有效领取占着重叠的写入范围，新的领取就会被拒绝。任务依赖没完成、版本不匹配，也不能直接开工。&lt;/p&gt;
&lt;p&gt;领取有 15 分钟租约，长任务要续租。中途换了模型或会话，接手者至少能从持久状态里找到任务、范围和已有结果，不必只靠翻聊天记录猜。完成后，Worker 用 &lt;code&gt;worklist_submit&lt;/code&gt; 交回结果和已有的 Evidence ID，主 Agent 再检查汇总。&lt;/p&gt;
&lt;p&gt;这里保留了两层检查：领取管理协作，写文件还要核对 SHA，执行命令也仍受原来的权限控制。直接用别的工具改仓库的会话，不会被 Worklist 锁住；遇到这种变化，旧 SHA 会让后续编辑失败，Agent 必须重新读取。它能减少协作冲突，不能替一个任意写文件的外部进程兜底。&lt;/p&gt;
&lt;p&gt;各路任务交回来以后，还要检查合并后的版本。两个分支各自通过测试，不代表组合起来也通过；验收记录需要对应合并后的代码。&lt;/p&gt;
&lt;h2 id=&#34;工作台重做以后先看问题&#34;&gt;工作台重做以后，先看问题&lt;a class=&#34;heading-anchor&#34; href=&#34;#%e5%b7%a5%e4%bd%9c%e5%8f%b0%e9%87%8d%e5%81%9a%e4%bb%a5%e5%90%8e%e5%85%88%e7%9c%8b%e9%97%ae%e9%a2%98&#34; aria-label=&#34;章节链接：工作台重做以后，先看问题&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;figure class=&#34;content-image&#34;&gt;&lt;img src=&#34;https://francisdu.com/img/wcode/wcode-v0-9-overview_hu_ad8969a85bbd604d.webp&#34; alt=&#34;wcode 0.9.0 工作台&#34;loading=&#34;lazy&#34; decoding=&#34;async&#34; srcset=&#34;https://francisdu.com/img/wcode/wcode-v0-9-overview_hu_ad8969a85bbd604d.webp 960w, https://francisdu.com/img/wcode/wcode-v0-9-overview_hu_8fea555cedd7ceb2.webp 1440w&#34; sizes=&#34;(max-width: 900px) calc(100vw - 32px), 900px&#34; width=&#34;1440&#34; height=&#34;1000&#34;&gt;&lt;/figure&gt;&lt;p&gt;&lt;em&gt;0.9.0 的实际界面，图中使用演示项目数据。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Web 工作台和终端观测台都重新整理了。现在打开以后，当前失败、缺少的验证、互相矛盾的证据、设计映射缺口和需要检查的大模块，会进入共用的问题列表。点一项，可以继续看对应的源码、任务或验证结果。&lt;/p&gt;
&lt;p&gt;以前页面里已经有不少信息，但人要自己来回拼。现在七个 Web 页面都保留工作区、代码版本和快照状态，切页面以后仍然知道自己在看什么。终端里也能直接切换问题、任务、Provider 和 Agent；小窗口保留帮助与停止操作。&lt;/p&gt;
&lt;p&gt;源码查看器这次也补齐了一个容易忽略的细节。文件按行分页，每页带读取时的 SHA。假设第一页刚看完，另一个会话改了文件，第二页会要求重新读取。这样屏幕上就不会拼出半份旧代码、半份新代码。切换项目以后才返回的旧请求，同样不能覆盖新项目的页面。&lt;/p&gt;
&lt;h2 id=&#34;还有几个不显眼的修正&#34;&gt;还有几个不显眼的修正&lt;a class=&#34;heading-anchor&#34; href=&#34;#%e8%bf%98%e6%9c%89%e5%87%a0%e4%b8%aa%e4%b8%8d%e6%98%be%e7%9c%bc%e7%9a%84%e4%bf%ae%e6%ad%a3&#34; aria-label=&#34;章节链接：还有几个不显眼的修正&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;一个是跨工作区的等待。工程日志和失败记录改成按工作区使用锁，写入一个仓库的记录时，其他仓库不再等同一把锁。相同的验证请求也可以共用一次执行，减少重复检查。&lt;/p&gt;
&lt;p&gt;另一个是单仓库验收。Rust 工作区会自动发现下面的 crate，旧判断把这些子包也算成用户选择的工作区，结果明明只选了一个仓库，验收命令却报“只能选择一个工作区”。现在按用户实际配置的根目录判断；显式选择两个独立仓库，仍然拒绝混在同一次验收里。&lt;/p&gt;
&lt;p&gt;Setup 的复制按钮也修了一个小竞态。点复制以后，浏览器可能过一会儿才回结果。如果期间切了工作区或换了命令，旧请求不能给新内容显示“复制成功”。这类问题很小，却会让人按着错误的反馈继续操作。&lt;/p&gt;
&lt;p&gt;上下文方面，0.9.0 减少了交接包里可重新取得的路由说明和重复指引，保留源码正文、SHA、检查和失败信息。有效上下文继续复用，过期或缺失的部分再补。&lt;/p&gt;
&lt;p&gt;拿到 0.9.0 后，在项目目录运行 &lt;code&gt;wcode setup&lt;/code&gt; 完成 MCP 接入，重连编码助手即可。需要终端工作台时运行 &lt;code&gt;wcode&lt;/code&gt;；里面的 &lt;strong&gt;W&lt;/strong&gt; 打开项目状态页，&lt;strong&gt;O&lt;/strong&gt; 打开 Setup。&lt;/p&gt;
&lt;p&gt;安装包与校验和在 &lt;a href=&#34;https://github.com/francis-du/wcode/releases/tag/v0.9.0&#34;&gt;GitHub Releases&lt;/a&gt;，完整变化和命令说明在 &lt;a href=&#34;https://wcode.francis.run/zh/docs/releases/v0.9.0/&#34;&gt;0.9.0 文档&lt;/a&gt;。&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>