• AI coding assistant की मुख्य संरचना कोई जटिल जादू नहीं, बल्कि लगभग 200 लाइनों के सरल Python code से बनी होती है
  • सिस्टम LLM के साथ conversation loop पर आधारित होता है, जहाँ LLM tool call का अनुरोध करता है और local code उसे चलाकर परिणाम वापस भेजता है
  • ज़रूरी बुनियादी tools सिर्फ तीन हैं: फ़ाइल पढ़ना(read), फ़ाइल सूची(list), फ़ाइल संपादित करना(edit); इनके जरिए project को explore करना और code को modify करना संभव है
  • LLM tools के signature और description(docstring) के आधार पर यह खुद तय करता है कि कौन-सा tool कब call करना है
  • यह संरचना Claude Code जैसे commercial product के core के समान है, और सरल संरचना से भी शक्तिशाली coding agent लागू किया जा सकता है

coding agent की बुनियादी अवधारणा

  • coding agent, LLM के साथ conversation-आधारित सिस्टम होता है, जो user के निर्देश लेकर tool call के जरिए वास्तविक file operations करता है
    • user “hello world फ़ंक्शन वाला नया फ़ाइल बनाओ” जैसे अनुरोध दर्ज करता है
    • LLM आवश्यक tool call को JSON फ़ॉर्मैट में response करता है
    • प्रोग्राम उस tool को execute करता है और परिणाम फिर LLM को भेजता है
  • LLM सीधे file system तक पहुँच नहीं करता, वह सिर्फ अनुरोध करता है, और वास्तविक काम local code संभालता है

आवश्यक तीन tools

  • read_file: निर्दिष्ट फ़ाइल की पूरी सामग्री पढ़कर लौटाता है
  • list_files: directory के अंदर files और folders की सूची लौटाता है
  • edit_file: मौजूदा string को नई string से बदलता है, या old_str खाली होने पर नया फ़ाइल बनाता है
    • बदलने वाली string न मिले तो “old_str not found” लौटाता है
  • सिर्फ इन तीन tools से ही फ़ाइल बनाना, संशोधित करना और खोजबीन संभव है

tool registration और LLM integration

  • सभी tools को TOOL_REGISTRY में नाम और function के साथ register किया जाता है, ताकि LLM उन्हें call कर सके
  • हर tool का docstring और signature निकालकर LLM को दिया जाता है
  • system prompt, LLM को “उपलब्ध tools की सूची” और “call format” साफ़ तौर पर बताता है
    • tool call को 'tool: TOOL_NAME({JSON_ARGS})' फ़ॉर्मैट तक सीमित रखा जाता है
    • tool execution का परिणाम tool_result(...) रूप में LLM को भेजा जाता है

tool call parsing और LLM response handling

  • LLM के response में tool: से शुरू होने वाली पंक्तियाँ खोजकर tool का नाम और arguments(JSON) निकाले जाते हैं
  • हर tool चलाने के बाद परिणाम को JSON में serialize करके conversation history में जोड़ा जाता है
  • execute_llm_call function, LLM API को call करता है और response text लौटाता है
  • run_coding_agent_loop user input लेकर LLM के साथ conversation loop बनाए रखता है
    • अंदरूनी loop तब तक दोहरता है जब तक LLM आगे कोई tool call नहीं माँगता

execution examples और विस्तार की संभावना

  • उदाहरण conversation:
    • “hello.py फ़ाइल बनाओ और hello world लागू करो” → edit_file call से नया फ़ाइल बनाया जाता है
    • “hello.py में दो संख्याओं को गुणा करने वाला फ़ंक्शन जोड़ो” → read_file के बाद edit_file call
  • लगभग 200 लाइनों के code में पूरा coding assistant लागू किया जा सकता है
  • commercial products इसमें आगे error handling, streaming responses, context management, अतिरिक्त tools, approval process जैसी चीज़ें जोड़ते हैं
  • मुख्य संरचना वही रहती है: LLM तय करता है और code execute करता है — ऐसा सरल loop

अभ्यास और विस्तार

  • पूरा source लगभग 200 लाइनों का है, और दूसरे LLM provider को बदलना या tools जोड़ना जैसे विस्तार संभव हैं
  • सरल संरचना के साथ भी शक्तिशाली AI coding agent prototype को सीधे लागू किया जा सकता है

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.