Bakit nagha-hallucinate ng mga file path ang AI coding agent mo
> Gumagawa-gawa ng mga file path ang AI coding agent kapag wala silang tunay na mapa ng repo. Ito ang dahilan kung bakit nangyayari ito, at kung paano nagreresulta ang naka-ground na mapa sa mas kaunting hallucinated na pagbabago.
Hindi ang maling function body ang senyales. Ito ay isang kumpiyanteng pagbabago sa isang file na hindi umiiral, o sa isang file na umiiral ngunit hindi ang file na nagpapatupad sa asal na iyon.
Hiningi mo ang pag-aayos ng session expiry. Binubuksan ng agent ang src/auth/session.ts. Plausible ang path. Mali rin ito. Ang tunay na handler ay naninirahan sa apps/api/src/middleware/expiry.ts, na binago ang pangalan dalawang refactor na ang nakalipas. Hindi nagsisinungaling sa iyo ang agent. Kinukumpleto nito ang isang path-shaped na string batay sa training bias kasama ang anumang nasa context window na.
Ito ay karaniwang failure pattern sa mga tunay na repository. Kayang magsulat ng code ang modelo. Ang pagkakamali nito ay ang pagpili ng maling lugar para isulat ito.
Bakit gumagawa-gawa ng path ang mga agent
Ang mga coding agent ay mga next-token prediction model na may sangkap na mga tool. Kapag sinabi mong ‘ayusin ang session expiry’, kailangan nitong pangalanan ang isang file bago ito makabasa o makapag-patch ng anuman. Kung wala pa itong naka-ground na mapa, bumubuo ito ng path mula sa:
- Naming convention na nakita nito sa ibang repository. Ang
src/auth/session.tsay isang karaniwang anyo. - Mga file na nasa usapan na, na maaaring iyong file na na-paste mo noong nakaraang linggo, hindi ang mahalaga ngayon.
- Directory listing na natakbo nito nang aksidente, hindi kumpleto sa isang malaking tree.
- Instruction file. Sinasabi ng
CLAUDE.mdatAGENTS.mdsa agent kung paano kumilos. Hindi ito buhay na index ng mga symbol, tumatawag, o kasalukuyang path.
Wala sa mga pinagmulang ito ang mapa ng repo na ito, ngayon. Pinupunan ng modelo ang puwang sa parehong paraan na pinupunan nito ang alinmang puwang: gamit ang high-probability na continuation. Madalas mukhang tunay na path ang continuation na iyon. Minsan umiiral ang file at nasa tamang neighborhood ito. Minsan umiiral ito sa isang branch na na-merge noong nakaraang buwan. Minsan hindi ito kailanman umiral.
Hindi ka mase-save ng grep dito kung hindi man naghanap ang agent ng tamang string mula sa simula. Nagha-hula ang agent ng path, saka binabasa kung ano ang ibinabalik ng path na iyon, saka ie-edit ito. Ang unang maling hakbang ay ang path, hindi ang patch.
Hindi rin pareho ang pagbasa ng mga file sa paghahanap ng tama. Maaaring buksan ng Claude Code, Cursor, Codex, at kahalintulad na tool ang anumang itinuro mo dito. Ang tanong ay kung maaasahan nila mahanap ang tamang file, ang mahalagang symbol, mga dependency, test, at saklaw ng epekto bago mag-edit. Ang file access nang walang mapa ay nagsisimula pa rin sa panghuhula.
Ang pag-edit ng maling file ay problema sa retrieval
Isipin ang na-gawa-gawang path bilang isang pagkakamali sa retrieval, hindi kapintasan sa karakter.
Kung kailangang ibalik ng agent ang path/file.ext:line bago ito pahintulutang mag-edit, may mangyayaring dalawang bagay. Una, maaari mong buksan ang cited at tanggihan ang gawain sa loob ng sampung segundo. Ikalawa, kailangang magtanong ang agent ng isang bagay na tunay na kilala ang tree na iyon.
Iyan ang gawain ng codebase context layer. Hindi sapat ang semantic search lang. Isang cited na ‘parang session expiry’ ay maaari pa ring dumapo sa isang deprecated na package. Kailangan mo rin ng eksaktong text kapag alam mo ang string, symbol search kapag alam mo ang pangalan, structural search kapag alam mo ang hugis, at dependency graph kapag kailangan mo ng mga tumatawag at saklaw ng epekto.
Ang Maguyva ang layer na iyon para sa mga MCP-compatible na coding agent. Hindi ito editor. Nananatili sa kanilang mga lugar ang Claude Code, Cursor, Codex CLI, VS Code, Windsurf, at ibang MCP client. Itinatanong ng agent ang ranked na mapa bago galawin ang isang linya.
Ang inaangkin ay sadyang katamtaman: mas kaunting hallucinated na pagbabago. Hindi inaalis ng Maguyva ang kakayahang manghula ng modelo. Binabago nito ang default na unang hakbang mula sa ‘gumawa-gawa ng plausible na path’ patungo sa ‘humingi ng ranked, cited na lokasyon’.
Ano ang hitsura ng naka-ground na sagot
Hindi isang talata ang kapaki-pakinabang na sagot sa ‘saan hinahawakan ang session expiry’. Ito ay isang maikling listahan ng mga lokasyon:
apps/api/src/middleware/expiry.ts:48- handlerapps/web/src/lib/auth-client.ts:112- tumatawagapps/api/tests/expiry.test.ts:20- test na mabibigo kung mali ang pagbabago
Maaari mong buksan ang mga linyang ito. Kung mali, huminto ka. Kung tama, maaaring mag-edit ang agent. Ang pag-verify ang punto, hindi ang slogan.
Inilalantad ng Maguyva ang 11 customer-facing MCP tool sa search, symbol, dependency analysis, file retrieval, repository context, at deterministic utility-tool workflow. Ang apat na retrieval mode (semantic, structural, graph/dependency, at text) ay nagsasama sa isang ranked na resulta; ang symbol search ay hiwalay na MCP tool (find_symbol). Bumabalik ang mga naka-ground na sagot na may file path at line number, para mapa-evaluate mo ang mga ito laban sa tree na nasa harap mo.
Inilalarawan ng dokumentasyon ang pinakamaikling daan: magsimula nang libre, i-index ang repo na kilala mo na, ikonekta ang client, pagkatapos ay magtanong ng isang tanong na kaya mong ma-verify.
Ang loop na nagbabago sa unang pagbabago
Hindi mo kailangan ng bagong relihiyon sa workflow. Kailangan mo ng isang dagdag na hakbang bago ang unang pagsulat.
- Magtanong ng isang tanong na kaya mo nang husgahan. Mas mahusay ang ‘aling code ang humahawak sa login at session expiry?’ kaysa ‘ayusin ang auth’.
- Humingi ng mga cited. File path at line number, hindi buod ng ‘auth module’.
- Buksan ang cited na file. Sundan ang symbol. I-verify ang mga dependency na gagalawin mo.
- Pahintulutan lang mag-patch ang agent pagkatapos.
Kung walang ibinalik na kapaki-pakinabang ang hakbang 2, walang karapatan ang agent na mag-improvise ng path. Naghahanap ito ulit, o ipinapakita mo dito. Ang solong gate na iyon ang gumagawa ng mas kaunting hallucinated na pagbabago. Parehong modelo ang modelo. Ang mapa ang nagbabago.
Mahalaga pa rin ang mga instruction file. Panatilihin ang mga ito. Gamitin para sa mga convention, panuntunan sa review, at kung ano ang hindi dapat galawin. Huwag hilingin sa mga ito na maging index. Ang CLAUDE.md na naglilista ng tatlong mahahalagang directory ay lipas na sa loob ng isang linggo matapos ang paghahati ng package. Ang naitatanong na mapa ay nag-a-update kapag nag-update ang repo.
Ang may kaugnayang pagkabigo ay ang halos-tamang file: binubuksan ng agent ang auth.ts habang naninirahan ang asal sa auth-client.ts, o pina-patch ang isang na-generate na file sa halip na ang source, o ine-edit ang isang kopya sa packages/legacy dahil tumugma ang pangalan. Hindi ginagawang imposible ng cited ang mga pagkakamaling ito. Ginagawa nitong nakikita ang mga ito bago dumapo ang diff.
Ano ang hindi aayusin ng mapa para sa iyo
Maging tapat tungkol sa nakukuha mo. Hindi gagawing tama ng naka-ground na mapa ang bawat pagbabago — maaari pa ring sumulat ang agent mo ng masamang patch sa mismong tamang file. Kung umaasa ang codebase mo sa dynamic dispatch, reflection, o monkey-patching, magbabalik ng mas manipis na resulta ang ilang symbol search kaysa sa gusto mo, dahil iyan ang ginagawa ng runtime indirection sa anumang static index. At kung umaasa ka ng porsyento — ‘bumaba ang mga hallucinated path nang X%’ — hindi mo ito matatagpuan dito, dahil walang sinuman ang makasusukat ng numerong iyon nang tapat para sa repo mo maliban sa iyo mismo.
Ang maaasahan mo ay mas makitid at mas kapaki-pakinabang: hihinto ang agent sa pagsisimula ng pagbabago nito gamit ang isang hinulaang path. Ang unang hakbang na iyon ay nagiging naka-ground sa tunay na mapa, at mula doon nanggagaling ang mas kaunting hallucinated na pagbabago. Lahat ng bagay matapos ang cited — pagbasa ng diff, pag-evaluate ng patch — gawain mo pa rin, gaya ng dati.
Halos walang kabuluhan ang pagsubok na ito: i-index ang repo na kilala mo na at magtanong ng isang tanong na kaya mong ma-verify. Magsimula sa path na nakapaso na sa iyo dati. Kung mali ang cited, makikita mo agad. Kung tama, may mas mahusay na lugar dadapuan ang susunod na pagbabago ng agent mo.
// it doesn't know the file. it knows how to find it.
Kaugnay na babasahin
Higit pa mula sa build log ng Maguyva
Pagbibigay sa AI coding agent ng konteksto ng malaking repo nang walang local indexer_
Paano bigyan ang coding agent ng mapa ng malaking repository na maaaring itanong mula sa cloud, nang hindi nagpapatakbo ng local indexer sa iyong laptop.
Konteksto na sumasama sa iyo_
Napakahusay ng indexer ng Cursor sa loob ng Cursor. Ang Maguyva ay isang hosted MCP map na maaaring itanong ng parehong agent mula sa ibang editor, CLI, o CI.
Mapa muna, review pagkatapos_
I-ground ang coding agent mo sa repo map bago ito magsulat. Pagkatapos ay hayaang suriin ni Greptile ang pull request. Magkatuwang na pares, hindi kapalit.