K.netagentV0.1 是基于 .NET 10 与 WPF 开发的 Windows 原生桌面 Agent。许多成熟的 Agent 体验和系统级能力往往优先出现在 macOS,而 Windows 用户在本地工具协作、后台任务、跨会话记忆、长任务恢复与可控自动化等方面,仍缺少一套统一、透明并真正贴近 Windows 的实现。K.netagent 因此从 Windows 原生体验出发重新设计。
我们的目标不是复制一个聊天窗口,而是逐步构建一个能够在 Windows 上长期工作的个人 Agent:理解任务、管理上下文、调用受控工具、保存经过确认的记忆,并在程序中断后继续未完成的工作。
当前仓库是 K.netagentV0.1 开源版。 它只公开并展示 K.netagent 完整路线中的核心能力子集,用于验证 Windows 原生 Agent 的架构、交互与安全边界。后续迭代版本将依次使用
K.netagentV0.2、K.netagentV0.3等名称。
当前阶段优先把一个 Agent 做到可以日常使用:流式对话、跨会话记忆、受控工具、长任务分治、检查点恢复与人工审批。开源版暂不包含多 Agent 调度。
从仓库的 Releases 页面下载:
k-netagent-<版本>-win-x64-setup.exe
双击安装即可。安装包包含应用运行所需的 .NET Desktop Runtime:
- 不需要 Python。
- 不需要安装 .NET SDK 或 .NET Runtime。
- 默认按当前用户安装,不要求管理员权限。
- 自动创建开始菜单入口,可选择创建桌面快捷方式。
- 正常卸载不会删除用户的配置、会话、记忆或加密密钥。
未签名的开源测试构建可能显示 Windows SmartScreen“未知发布者”。这是代码签名信誉提示,不是缺少运行依赖;正式消除该提示需要 Authenticode 代码签名证书。
安装版首次使用文件工具时,会创建:
文档\K.netagent Workspace
文件、长任务和受控命令只在该工作区内运行,不会把安装目录当成用户项目。
要求:Windows 10/11、.NET 10.0.400 或更新的 .NET 10 SDK。仓库通过 global.json 统一选择兼容的 .NET 10 feature band。
dotnet restore TestAgent.slnx
.\run-dotnet.ps1也可以直接运行:
dotnet run --project .\src\TestAgent.Desktop\TestAgent.Desktop.csproj源码启动时会自动把包含 TestAgent.slnx 的仓库作为工作区。
在“设置”页选择 Provider、Endpoint、Model 并输入 API Key。
- 支持 DeepSeek、OpenAI、OpenRouter、Ollama 与自定义 OpenAI-compatible 端点。
- API Key 使用 Windows DPAPI、当前用户作用域加密保存。
- Key 不写入仓库、普通配置或日志。
- 配置与用户数据位于
%LOCALAPPDATA%\TestAgent\。
长期记忆和聊天历史是两套能力:
| 类型 | 范围 | 使用方式 |
|---|---|---|
User |
所有聊天共享 | 每轮自动选择并注入已启用记忆 |
Project |
当前工作区内跨聊天共享 | 普通聊天自动可用;长任务按 RelevantPaths 收窄 |
Session |
只属于指定聊天 | 仅在对应会话自动注入 |
| 会话历史 | 已持久化的聊天 | 由 search_session_history 按需检索,不整库塞入上下文 |
记忆可在“记忆”页新增、编辑、启用、停用和删除,也可以由 Agent 调用 save_memory 提议保存;模型提议仍需人工批准。程序不会把每段聊天静默总结成永久记忆。
每轮最多注入 20 条、总计 12,000 字符,并把记忆作为不可信用户数据隔离。疑似 API Key、Token、密码或私钥不会被保存为长期记忆。
重启后,会话从 %LOCALAPPDATA%\TestAgent\sessions\ 恢复,长期记忆从 %LOCALAPPDATA%\TestAgent\memory\ 恢复。
- OpenAI-compatible
/chat/completions流式响应。 - 普通正文与 Provider 支持时的
reasoning_content。 - 多轮会话、停止生成、清空与新建会话、错误展示、token 用量。
- 普通 JSON 与 SSE 工具调用兼容,网络错误有界重试。
文件与检索:
list_filesread_filesearch_textsearch_session_history
写入与记忆:
edit_fileapply_patchsave_memory
进程与网络:
run_commandfetch_web_contentstart_background_commandget_background_commandread_background_outputstop_background_command
工具采用 1 个 Agent 会话 + N 个 ToolSession。注册多少工具,就为当前聊天或任务建立多少个隔离统计会话;ToolSession 不调用模型、不独立规划,也不是子 Agent。工具超过 12 个时仍会建立全部 ToolSession,但每轮只向模型激活最相关的最多 8 个 schema。
安装版的聊天、记忆、文件、网页和基础 Agent 功能不要求额外依赖。run_command 与后台开发命令属于可选开发能力:只有电脑已经安装可信的 .NET SDK、Git 或 rg 时,相应命令才可用;缺少这些开发工具不会影响应用启动,也不会弹出强制下载提示。
“长任务”页实现:
项目扫描 → 最多 12 节点 DAG → 人工审阅 → 单 Agent 顺序执行
→ 工具验证 → 检查点 → 恢复
- 每个节点只接收总目标、当前目标、直接依赖摘要、相关路径和验收条件。
- 文件工具同时受节点
RelevantPaths限制。 - 状态写入
%LOCALAPPDATA%\TestAgent\tasks\。 - 已完成节点恢复时不会重跑;中断写操作进入
NeedsReview,不会自动重放未知副作用。 - 某节点失败只阻塞其后继,独立节点仍可继续。
这仍然是一个 Agent,不会按节点启动多个 Agent 或后台 Worker。
- 回答自审:最多一轮;审阅失败时保留原回答。
- 代码自迭代:读取
iteration-guides/白名单提案,在临时副本构建和测试,人工批准后才写入真实源码。 - 成功记录写入
iterations/YYYY-MM-DD.md。
代码自迭代主要面向源码工作区。临时副本只提供变更隔离与回滚,不是操作系统进程沙箱;不要批准来源不可信、会在构建或测试阶段执行的代码。
- 文件工具只能访问当前工作区,拒绝
.git、bin、obj、.env、凭据、私钥、敏感历史、符号链接与 junction 逃逸。 - 写文件、启动或停止进程、保存记忆、访问外部网络都需要明确审批。
run_command与后台命令只允许可信绝对路径的受限dotnet、rg和只读git配方。dotnet build/test/run可能执行工作区代码,批准前必须确认代码来源。fetch_web_content只读取公开 HTTPS 静态文本,拒绝私网、凭据 URL、Cookie、跳转、JavaScript 与超限正文。- 工具输出、工作区文件、网页、历史与记忆都按不可信数据回灌,不能替代用户授权。
- 工具审计位于
%LOCALAPPDATA%\TestAgent\audit\,敏感字段会被脱敏。
dotnet restore TestAgent.slnx
dotnet build TestAgent.slnx -c Release --no-restore
dotnet test TestAgent.slnx -c Release --no-build --no-restore生成双击安装的自包含 Setup:
.\build-installer.ps1 -Version 0.1.0 -InstallBuildTools该脚本会:
- 运行 Release 测试。
- 发布
win-x64self-contained 多文件应用。 - 使用 Inno Setup 把应用与 .NET Runtime 打包成单个 Setup EXE。
- 输出 SHA-256 校验文件。
- 删除临时 publish staging,不生成便携版发布物。
最终文件位于:
artifacts\installer\k-netagent-<版本>-win-x64-setup.exe
artifacts\installer\k-netagent-<版本>-win-x64-setup.exe.sha256
Inno Setup 只属于维护者的构建工具,普通安装用户不需要安装。推送 v* 标签后,GitHub Actions 会自动构建安装器并上传 Release。
src/TestAgent.Core:Agent 循环、模型、任务图与公共接口。src/TestAgent.Infrastructure:Provider、JSON 存储、安全工具与进程服务。src/TestAgent.Desktop:WPF/MVVM 与依赖注入。tests/TestAgent.Tests:Core 和 Infrastructure 自动化测试。installer:Inno Setup 安装器定义。
- 多 Agent / 子 Agent 调度
- 交互式 Shell / PTY
- VS Code 桥接与扩展管理
- 可点击、可填写表单的浏览器自动化
- 图像输入、屏幕理解与 GUI 自动化
这些能力需要独立身份、权限和可见操作边界,不能通过通用 Shell 绕过审批。
- 贡献说明:CONTRIBUTING.md
- 行为准则:CODE_OF_CONDUCT.md
- 安全报告:SECURITY.md
- 版本记录:CHANGELOG.md
- GitHub 开源清单:OPEN_SOURCE_CHECKLIST.md
MIT — 详见 LICENSE。