c
File size: 6,567 Bytes
3101b51
14f1277
208ff85
 
 
3101b51
14f1277
3101b51
9dd9ecc
3101b51
9dd9ecc
963f5f3
 
3101b51
 
14f1277
9dd9ecc
14f1277
9dd9ecc
14f1277
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9dd9ecc
 
 
14f1277
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9dd9ecc
14f1277
 
 
9dd9ecc
14f1277
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
---
title: The True C-Codestral IDE Agent
emoji: πŸš€
colorFrom: red
colorTo: red
sdk: gradio
sdk_version: 5.33.1
app_file: app.py
pinned: true
license: mit
tags:
- agent-demo-track
- mcp-server-track
---

<div align="center">

# πŸš€ The True C-Codestral IDE Agent

**An intelligent, multi-step AI agent that transforms natural language instructions into compiled C code, acting as a complete, interactive C development environment.**

[![Hackathon Track](https://img.shields.io/badge/Hackathon%20Track-Agentic%20Demo-blue)](https://huggingface.co/spaces/Agents-MCP-Hackathon/c)
[![Hackathon Track](https://img.shields.io/badge/Hackathon%20Track-MCP%20Server-orange)](https://huggingface.co/spaces/Agents-MCP-Hackathon/c)

</div>

This project is a submission for the **Agents & MCP Hackathon 2025**, participating in both the **Agentic Demo Showcase** and the **MCP Tool / Server** tracks.

---

## πŸŽ₯ Demo Video
[![C-Codestral Agent Demo Video](https://img.youtube.com/vi/LuO--JG7t7o/0.jpg)](https://www.youtube.com/watch?v=LuO--JG7t7o)
**(Click the image to watch the demo on YouTube)**

---

## ✨ Core Features / 핡심 κΈ°λŠ₯

This agent is more than a simple code generator; it's a true AI development partner that understands and executes complex, sequential tasks.

*   **🧠 Multi-Step Agentic Workflow**
    *   **EN**: Understands and sequentially executes chained commands like "Refactor this code for readability, and then compile it."
    *   **KR**: "μ½”λ“œλ₯Ό λ¦¬νŒ©ν† λ§ν•˜κ³ , κ·Έ λ‹€μŒμ— μ»΄νŒŒμΌν•΄μ€˜"와 같은 λ³΅μž‘ν•˜κ³  μ—°κ²°λœ λͺ…령을 μ΄ν•΄ν•˜κ³  순차적으둜 μž‘μ—…μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

*   **πŸ€– Powered by Codestral**
    *   **EN**: Utilizes Mistral AI's latest specialized model for code, `Codestral`, to generate and analyze high-quality C code.
    *   **KR**: Mistral AI의 μ΅œμ‹  μ½”λ“œ μ „λ¬Έ λͺ¨λΈμΈ `Codestral`을 μ‚¬μš©ν•˜μ—¬ μ •ν™•ν•˜κ³  ν’ˆμ§ˆ 높은 C μ½”λ“œλ₯Ό μƒμ„±ν•˜κ³  λΆ„μ„ν•©λ‹ˆλ‹€.

*   **⚑ On-the-Fly Compilation & Execution**
    *   **EN**: Instantly compiles and runs code using `gcc` on the backend. It provides real-time feedback on the console, including success status, output, or compilation errors.
    *   **KR**: λ°±μ—”λ“œμ—μ„œ `gcc`λ₯Ό 톡해 μ½”λ“œλ₯Ό μ¦‰μ‹œ μ»΄νŒŒμΌν•˜κ³  μ‹€ν–‰ν•©λ‹ˆλ‹€. 성곡 μ—¬λΆ€, κ²°κ³Ό, 컴파일 였λ₯˜κΉŒμ§€ μ‹€μ‹œκ°„μœΌλ‘œ μ½˜μ†”μ— ν‘œμ‹œν•˜μ—¬ μ™„λ²½ν•œ C 개발 κ²½ν—˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€.

*   **↔️ Dual-Mode Interface**
    *   **EN**: Features both a conversational **IDE Agent** for users and **MCP Tools API** endpoints for other agents.
    *   **KR**: μ‚¬μš©μžλ₯Ό μœ„ν•œ λŒ€ν™”ν˜• **IDE Agent**와 λ‹€λ₯Έ μ—μ΄μ „νŠΈλ“€μ΄ μ‚¬μš©ν•  수 μžˆλŠ” **MCP Tools API**λ₯Ό λͺ¨λ‘ μ œκ³΅ν•©λ‹ˆλ‹€.

*   **🌍 Bilingual Instruction Support**
    *   **EN**: Capable of understanding and processing instructions given in both English and Korean.
    *   **KR**: ν•œκ΅­μ–΄μ™€ μ˜μ–΄λ‘œ μž‘μ„±λœ λͺ…λ Ήμ–΄λ₯Ό λͺ¨λ‘ μ΄ν•΄ν•˜κ³  μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

---

## 🎯 Hackathon Tracks Contribution / 해컀톀 νŠΈλž™ κΈ°μ—¬

This project makes clear contributions to two separate tracks.

### πŸ€– Track 3: Agentic Demo Showcase

The **IDE Agent** tab is a complete demonstration of a powerful AI agent.
1.  **Stateful Interaction**: The agent maintains the code (state) throughout the conversation, building upon previous steps.
2.  **Complex Command Parsing**: It deconstructs user requests based on connectors like "and" or "then" to create a multi-step execution plan.
3.  **Autonomous Tool Use**: Based on its plan, the agent autonomously selects and uses its internal tools: `generate_code`, `compile_and_run`, and `analyze_and_refactor`.

These capabilities prove it is a true "agent," moving beyond the limitations of a simple chatbot.

### πŸ”§ Track 1: MCP Tool / Server

The **MCP Tools API** tab demonstrates how a Gradio app can function as an MCP (Model Context Protocol) server.
*   Each function in this tab (`Generate C Code`, `Compile & Run C Code`, etc.) acts as a discrete API endpoint that can be called by any MCP client or other agents.
*   This exposes the agent's powerful C language processing capabilities as modular tools, allowing other AI services to easily integrate them.

---

## πŸ› οΈ How It Works & Technical Details / 기술 μŠ€νƒ 및 μž‘λ™ 방식

*   **Frontend**: Built with `Gradio` to create a modern, interactive web UI. The interface is cleanly separated into two tabs for its distinct purposes (IDE and MCP).
*   **LLM Backend**: Leverages `Mistral AI`'s `Codestral-latest` model via API calls to handle the core intelligence of code generation, analysis, and refactoring.
*   **Execution Backend**: Uses Python's `subprocess` module to run the `gcc` compiler in a secure environment, allowing it to feed actual C code execution results back to the user.
*   **Agent Logic**: The agent's core logic parses user commands with regular expressions to create a task queue. It then iterates through this queue, executing each task sequentially. Results and logs from each step are streamed to the user in real-time for full transparency.

## πŸš€ How to Use / μ‚¬μš© 방법

1.  **IDE Agent Tab**:
    *   **EN**: Write your C code in the **C Code Editor** on the left, or leave it empty to ask the agent to generate new code. In the **Instruction** box on the right, type your command in natural language (English or Korean), e.g., "Create a program that prints 'Hello World' and then run it." Click **Execute**. The agent will perform the tasks, stream its progress to the **Console / Output**, and update the code editor automatically if needed.
    *   **KR**: μ™Όμͺ½μ˜ **C Code Editor**에 μ½”λ“œλ₯Ό μž‘μ„±ν•˜κ±°λ‚˜, λΉ„μ›Œλ‘κ³  μƒˆλ‘œμš΄ μ½”λ“œ 생성을 μš”μ²­ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 였λ₯Έμͺ½ **Instruction** λ°•μŠ€μ— μ›ν•˜λŠ” μž‘μ—…μ„ μžμ—°μ–΄(ν•œκ΅­μ–΄ λ˜λŠ” μ˜μ–΄)둜 μž…λ ₯ν•©λ‹ˆλ‹€. (예: "Hello Worldλ₯Ό 좜λ ₯ν•˜λŠ” μ½”λ“œλ₯Ό λ§Œλ“€κ³  μ‹€ν–‰ν•΄μ€˜"). **Execute** λ²„νŠΌμ„ λˆ„λ₯΄λ©΄ μ—μ΄μ „νŠΈκ°€ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ©° **Console / Output**에 μ§„ν–‰ κ³Όμ •κ³Ό μ΅œμ’… κ²°κ³Όλ₯Ό ν‘œμ‹œν•˜κ³ , ν•„μš”μ‹œ μ½”λ“œ νŽΈμ§‘κΈ° λ‚΄μš©μ„ μžλ™μœΌλ‘œ μ—…λ°μ΄νŠΈν•©λ‹ˆλ‹€.

2.  **MCP Tools API Tab**:
    *   **EN**: This tab is designed for other agents or services to use this Space as an API. You can open each tool's accordion to test its functionality individually.
    *   **KR**: 이 탭은 λ‹€λ₯Έ μ—μ΄μ „νŠΈλ‚˜ μ„œλΉ„μŠ€κ°€ 이 Spaceλ₯Ό API처럼 μ‚¬μš©ν•  λ•Œλ₯Ό μœ„ν•œ κ²ƒμž…λ‹ˆλ‹€. 각 도ꡬ(Tool) μ„Ήμ…˜μ„ μ—΄μ–΄ κ°œλ³„ κΈ°λŠ₯을 ν…ŒμŠ€νŠΈν•΄λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.