easynet.run · 全部问题场景

几个 Agent 同时改一份东西,最后让我手工救场。

一个助手改首页文案,一个调整样式,第三个顺手格式化了同一个文件。它们都报告完成,你检查时却发现刚确认的句子不见了。并行让工作开始得更快,却没有安排好这些修改如何在最后相遇。

代码任务先用独立分支或 worktree、差异评审和冲突检测;文档则优先使用支持协作的编辑器。这些工具本来就负责版本与合并,EasyNet 不应取代它们。只因为几个助手在不同机器上,也没有理由放弃已有的保护。

只有当修改通过共享服务提交时,才需要考虑调用入口这一层。例如,一个更新页面文案的函数接收目标段落、原版本和建议文本,返回可审查的变更或冲突。EasyRemote 可以把这个函数提供给不同助手,EasyNet 的调用记录可以说明谁提交了请求。

真正防止覆盖的逻辑仍在写入程序里:它比较请求依据的版本与当前版本,一旦变化就拒绝直接覆盖。助手应拿到冲突信息重新检查,而不是用旧文件强行写回。若修改涉及多个文件,还需原有版本控制或事务安排,调用先后顺序不能替代它。

同时要给任务划清范围。文案与样式交叉的区域交给指定负责人合并,各助手先交付差异,不共享一份无人协调的未提交状态。合并后仍要检查页面和测试;每个子任务单独成功,不代表它们组合起来就正确。

可以让两个测试请求故意基于同一旧版本修改同一段文字,确认后一个得到冲突而不是覆盖。若现有 Git 流程已经可靠完成这些事,就无需增加调用层。这里可追求的是远程修改同样守住原有版本规则,不是让一个能力地址承诺通用协同编辑。

  1. 01

    读取同一旧版

    两个任务分别准备差异。

  2. 02

    第一份写入成功

    当前版本随内容更新。

  3. 03

    第二份返回冲突

    重新检查,而非覆盖已确认内容。

两份修改都要带上自己依据的版本。

拒绝旧版本覆盖

顺序运行的版本检查演示;生产并发写入需数据库原子比较或版本控制。

本地示例 · python
document = {'version': 1, 'text': 'Original'}

def update(expected, text):
    if document['version'] != expected:
        return 'conflict'
    document.update(version=expected + 1, text=text)
    return 'updated'

print(update(1, 'Approved copy'))
print(update(1, 'Stale copy'))
print(document['text'])

预期结果:依次输出updated、conflict、Approved copy;第二次没有覆盖第一次。

接入时的检查项
  • 过期版本请求无法静默覆盖新修改。
  • 冲突能定位到具体对象和发起任务。
  • 合并结果保留双方合法修改并通过针对性验证。
源码与接入资料