V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
roderic
V2EX  ›  OpenAI

目前主流 Code Agent 是怎么实现代码间依赖识别的

  •  
  •   roderic · 29 天前 · 1407 次点击

    目前主流的 AI 生成页面中,都提供了类似 Chomre 那样页面元素选择的功能,选中页面对应元素,输入修改条件(比如更改颜色或者其他样式)后,agent 就自动去帮忙处理这个指令。

    在这背后,选中元素后,可以得到目标元素的文件位置,但是如果是修改文案的场景中,文案可能是配置化传入目标组件的,就意味着,选中元素的文件位置不一定就是要修改的目标文案的文件位置,怎么才能找到目标文案的正确位置并正确修改,这个主流页面生成 agent 是怎么做的。

    比如:下面两个文件

    // ./src/index.tsx
    
    import {TEXT_CONF} from './conf';
    
    <div id="fruitList">
    {TEXT_CONF.map(item=><span>{item}<span>)}
    </div>
    
    
    // ./src/conf.ts
    
    export const TEXT_CONF = ['苹果', '李子', '香蕉']
    

    页面选中列表元素得到的文件是 './src/index.tsx',输入指令是更改“苹果”为“梨”。怎么能找到实际的文件位置,并修改?(实际情况可能比这更复杂,比如通过组件的 props 传入的情况,CONF 也可能会被处理多次才塞给 fruitList 这个 div )

    是通过模型自己的 reAct ?还是结合一些工程化的手段?

    3 条回复    2025-08-05 14:21:42 +08:00
    micate
        1
    micate  
       28 天前
    简单研究下你感兴趣的产品就知道了,比如 lovable:
    ```html
    <h3 data-lov-id="src/components/HumanoidSection.tsx:209:18" data-lov-name="h3" data-component-path="src/components/HumanoidSection.tsx" data-component-line="209" data-component-file="HumanoidSection.tsx" data-component-name="h3" data-component-content="%7B%22text%22%3A%22We're%20creating%20companions%2C%22%2C%22className%22%3A%22text-2xl%20sm%3Atext-3xl%20md%3Atext-4xl%20font-display%20text-white%20font-bold%20leading-tight%20mb-4%22%7D" class="text-2xl sm:text-3xl md:text-4xl font-display text-white font-bold leading-tight mb-4">We're creating companions, <span data-lov-id="src/components/HumanoidSection.tsx:210:47" data-lov-name="span" data-component-path="src/components/HumanoidSection.tsx" data-component-line="210" data-component-file="HumanoidSection.tsx" data-component-name="span" data-component-content="%7B%22text%22%3A%22not%20replacements%22%2C%22className%22%3A%22text-%5B%23FC4D0A%5D%22%7D" class="text-[#FC4D0A]">not replacements</span></h3>
    ```

    将你的问题提给 AI 也能得到答案。

    另外一种方案就是采用低代码( Schema ) + AI 的形式,配合成熟的可视化编辑方案来实现,比如 https://deamoy.ai/
    roderic
        2
    roderic  
    OP
       28 天前
    @micate 把我的问题给了下 claude ,它的回答看起来主要还是需要依赖代码的静态分析 https://claude.ai/share/a2ba908a-a84d-4b1b-b12e-75012359fdfd
    roderic
        3
    roderic  
    OP
       28 天前
    @micate 你说的 lovable 的例子,看起来只是把一些信息提前放到了 dom 上,但也只是当前元素自己的信息,没太看懂它是怎么解决我说的改动点其实是在其他文件的问题的,能细说下吗。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6208 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 03:00 · PVG 11:00 · LAX 20:00 · JFK 23:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.