万物版本控制
Version Control for Everything

原始链接: https://tyoverby.com/posts/version-control-for-everything-else/

尽管智能代理(Agentic AI)彻底改变了编程领域,但其在其他工作流程中的应用依然受限。作者认为,这是由于非编程工具缺乏**版本控制和原子操作**。 当人工智能在 Git 仓库中运行时,开发者可以受益于分支、暂存和轻松回滚等功能。相反,将人工智能应用于办公工具(如 Slack、Google Docs 或 Jira)则存在风险,因为这些工具缺乏原生机制来暂存更改、审核操作或撤销错误。 目前有两种潜在的解决方案: 1. **代理层(Proxy Layer):** 作为一个中介,汇集人工智能的操作以供人工审批。然而,这种方式存在集成复杂、缺乏原子性以及无法可视化完整状态等问题。 2. **“一切皆 Git”(Everything in Git):** 将任务、文档和元数据直接纳入版本控制仓库中。这可以实现原子化更新和一致的工作流程。 作者总结道,构建一套能为日常工作引入类似 Git 特性(分支、历史记录和可合并性)的“人工智能基础设施”,不仅能提高人工智能的可靠性,还将显著提升人类的工作效率。归根结底,有效的人工智能代理的未来,在于那些能够像对待源代码一样,以严格的版本控制标准来处理所有数据的系统。

抱歉。
相关文章

原文

AI assisted agentic coding has reached escape velocity, but non-programming use cases haven’t seen the same degree of adoption. I believe that the main reason for this is the lack of version control.

Imagine using claude-code outside of a git repository. Even for small things like refactors, using AI would be very stressful and error prone:

Even when I pay Claude to work on a small script, I always create a new git repo just to make my life easier. But outside of coding, it’s nearly impossible to find tooling that has the same guardrails and affordances.

Case study: software development outer loop

Managing the software development process is hard. We use issue trackers and pull requests to manage work, people write documentation and communicate over email, instant messaging, and in meetings. Keeping all of the information in these channels synchronized and up to date is a full time job. In this scenario, let’s say we’re concerned with the following systems:

  1. github issues (read/write)
  2. pull requests (read/write)
  3. google calendar (read/write)
  4. google docs (read/write)
  5. gmail (read)
  6. slack (read)

and you’re interested in using an LLM to find places where some information hasn’t made its way from one service to another

Option 1: a proxy layer

Without changing any of the underlying services, you could imagine building a proxy to add a “pull requests” layer that would allow staging changes across multiple underlying services and allow review before publishing the changes. An agent would act through this proxy, which would aggregate the mutations until someone could review, approve, and publish them.

This is challenging for a few reasons:

  1. Building one-off systems like this is time consuming, it’s tied to the specific workflow and complexity grows as you need to integrate more services.
  2. “Revert” would probably be out of reach. Underlying services might not provide functionality necessary to implement “undo"
  3. Detecting and resolving merge conflicts in the underlying services isn’t always possible.
  4. There’s no atomicity. If someone clicks the “publish” button and one service rejects the change for any reason, all the previous changes to other services are already out in the world.
  5. The layer on top of the underlying services prevents you from seeing what the whole state of the world would look like if you were to merge the change.

Option 2: put everything else in git

If you’re ok with leaving github, google docs, etc, then you could move this functionality into git.

In my view, the main obstacle here is that without serious dedication, the user experience for humans would be a major downgrade. This isn’t insurmountable, but it would be a lot of work.

A better world for LLMs is a better world for me

Although I’ve framed this blog post as “things that would make LLMs more useful outside of programming”, you could just as easily replace “LLM” with “Junior Developer”

It can be hard to get management to invest in developer productivity tooling, but for the next few years I think it’d be easier to justify spending on “AI Infrastructure” that happens to be a better experience for devs as well. Maybe you could use this to your advantage :D

Here are some links that you might find interesting:

  • The Local-First Software movement has been championing merge-based and conflict-free techniques for synchronizing data and documents.
  • Irmin is an OCaml library for building git-like databases with branches, merges, etc.
联系我们 contact @ memedata.com