narutoai /
narutocode
NarutoCode 项目介绍 NarutoCode 是一款基于Microsoft Agent Framework 框架编写然后运行在终端中的智能体编程工具,面向真实工程开发场景设计。它不是一个简单的问答入口,而是把大模型能力、终端交互、文件系统、命令执行、会话管理和本地持久化组合在一起,让 Agent 可以直接围绕当前代码仓库完成分析、修改、验证和持续协作。 在日常开发中,很多任务并不是单次回答可以解决的。比如排查一个构建错误,需要读…
narutoai /
NarutoCode 项目介绍 NarutoCode 是一款基于Microsoft Agent Framework 框架编写然后运行在终端中的智能体编程工具,面向真实工程开发场景设计。它不是一个简单的问答入口,而是把大模型能力、终端交互、文件系统、命令执行、会话管理和本地持久化组合在一起,让 Agent 可以直接围绕当前代码仓库完成分析、修改、验证和持续协作。 在日常开发中,很多任务并不是单次回答可以解决的。比如排查一个构建错误,需要读…
NarutoCode 项目介绍 NarutoCode 是一款基于Microsoft Agent Framework 框架编写然后运行在终端中的智能体编程工具,面向真实工程开发场景设计。它不是一个简单的问答入口,而是把大模型能力、终端交互、文件系统、命令执行、会话管理和本地持久化组合在一起,让 Agent 可以直接围绕当前代码仓库完成分析、修改、验证和持续协作。 在日常开发中,很多任务并不是单次回答可以解决的。比如排查一个构建错误,需要读取项目结构、搜索相关代码、理解调用链、修改文件、执行构建,再根据结果继续修正。NarutoCode 的目标就是把这类工程任务放到一个可持续执行的终端工作流中完成。 核心定位 NarutoCode 的定位是“终端里的 Agent 编程工作台”。 它关注三件事: 1. 让 Agent 理解真实工作区 Agent 基于当前目录读取文件、搜索代码、分析模块关系,而不是依赖用户手动复制代码片段。 2. 让 Agent 执行工程动作 Agent 可以调用受控工具完成文件读取、内容搜索、代码编辑、命令执行、任务跟踪等操作。 3. 让工程任务形成闭环 从需求理解、代码定位、修改实现到构建验证,都可以在同一个终端会话中连续完成。 技术栈 C#/.NET Microsoft Agent Framework Spectre.Console SQLite Serilog 核心能力 工作区感知 NarutoCode 以本地目录作为工作区运行。启动后,当前目录就是 Agent 的工程上下文。 Agent 可以围绕工作区完成: 读取源码、配置和文档; 搜索类、方法、接口、配置项和调用点; 理解项目分层、模块边界和依赖关系; 在指定工作区内进行最小化文件修改; 基于真实代码结构回答问题,而不是脱离上下文生成泛化建议。 这让它更适合处理真实项目,而不是只处理孤立代码片段。 工程任务闭环 NarutoCode 支持完整的工程任务执行链路: text 理解需求 ↓ 定位相关文件 ↓ 阅读关键代码 ↓ 分析实现关系 ↓ 修改目标文件 ↓ 执行构建或测试 ↓ 根据结果继续修正 这个闭环覆盖了日常开发中的高频场景: 项目结构分析; 功能实现; Bug 排查; 构建失败修复; 代码重构; 文档整理; 配置检查; 运行结果验证。 受控工具调用 NarutoCode 不是只输出文本建议。Agent 可以根据任务需要调用工具完成实际操作。 核心工具能力包括: Skills:支持本地SKILLS 文件搜索:按路径、通配符查找文件; 内容搜索:按关键字或正则定位代码片段; 文件读取:读取源码、配置、文档内容; 文件编辑:在理解现有结构后进行精确修改; 命令执行:运行构建、测试、脚本等本地命令; 任务管理:拆解复杂任务并跟踪执行状态; 上下文管理:控制长会话中的历史消息和工具结果规模。 Plan-Execute:计划和执行 Todo:待办清单 Task:基于任务的执行 命令执行支持审批控制,可以在需要更高安全性的环境中启用确认机制。 会话持久化 NarutoCode 会按工作区保存会话历史。再次进入同一个目录时,可以继续最近会话,也可以恢复历史会话。 持久化内容包括: 工作区会话; 用户消息; Agent 回复; 工具调用记录; 工具执行结果; Token 使用信息; 模型原始消息内容。 这使得长期任务可以持续推进,不需要每次重新说明项目背景。 会话记忆 NarutoCode 会将用户的一些提示或者反馈的重要信息,存储到项目工作区的Memory.md 记忆文件中,可保证同一个工作区的会话记忆共享 流式终端交互 NarutoCode 使用终端作为主要交互界面,支持流式输出和实时状态展示。 终端中可以看到: Agent 的实时回复; 工具调用状态; 审批提示; 构建或命令输出; 错误信息; Markdown 渲染内容。 运行中的任务可以取消。取消后会清理未完成的工具调用状态,避免残留上下文影响后续会话。 多模态输入 NarutoCode 支持图片输入,可以把截图、错误弹窗、界面对比图等作为任务上下文提交给 Agent。 典型场景包括: 分析错误截图; 识别 UI 异常; 对比修改前后的界面效果; 结合截图和代码一起定位问题。 对于桌面应用、终端截图和前端界面问题,这可以减少大量文字描述成本。 模型协议适配 NarutoCode 通过统一抽象隔离模型接入,避免上层业务绑定某个模型厂商或 SDK。 当前支持的协议形态包括: OpenAI Chat 协议; OpenAI Responses 协议; Anthropic 协议; 兼容 OpenAI 协议的第三方模型服务。 架构设计 NarutoCode 采用分层架构,将终端表现、应用编排、领域抽象和基础设施实现分离。 CLI 层 CLI 层是终端入口和表现层。 主要职责: 解析启动参数; 初始化依赖注入容器; 承载终端 UI; 处理键盘输入和取消信号; 渲染聊天消息、工具状态和审批提示; 处理图片输入和退出命令。 CLI 层不直接实现核心对话逻辑,也不直接操作数据库细节。 Application 层 Application 层负责编排对话相关用例。 主要职责: 会话创建; 会话恢复; 历史列表查询; 消息发送; 工具审批转发; 运行时会话重置。 Application 层依赖 Domain 中的模型和接口,负责流程组织,不承载基础设施实现。 Domain 层 Domain 层是稳定的核心抽象层。 主要内容包括: 会话模型; 消息模型; 工作区上下文; 配置模型; 消息角色和类型枚举; 会话服务接口; 会话仓储接口; Agent 客户端抽象。 Domain 层不依赖终端 UI、数据库、模型 SDK 或 Agent 框架实现,是系统中最稳定的部分。 Infrastructure 层 Infrastructure 层负责外部能力落地。 主要职责: Microsoft Agent Framework 集成; 模型客户端创建; 工具注册与执行; Shell 命令执行; 文件搜索和内容搜索; SQLite 初始化和访问; 会话历史持久化; 上下文压缩; JSON 序列化配置; 日志系统接入。 所有外部技术细节都集中在这一层,避免污染应用层和领域层。 总结 NarutoCode 是面向工程开发场景的终端 Agent 编程工具。它把本地工作区、模型推理、工具调用、会话持久化和终端交互整合成一个完整工作流,让 Agent 可以真正参与项目分析、代码修改、命令执行和结果验证 同时NarutoCode也是一个基于C# MAF组件的Code Agent智能体
讨论这个产品