Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 14 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ DeepSeek in minutes. Local small models turned into real productivity.

MA is a terminal coding agent built around two practical promises: remote setup should be brainless, and local small models should become useful production tools. DeepSeek config is interactive and direct. LM Studio/Qwen gets long-context handling, tool hardening, model switching, and benchmark-driven fixes so small models can do real repo work.

`v0.2.0-alpha.1` supports LM Studio local models, DeepSeek official API, and Agora through MCP stdio. Agora is MA's local-first provider integration: it exposes real model-loading and MemoryPatch state instead of pretending memory was added to a prompt.
`v0.3.0` supports LM Studio local models, DeepSeek official API, and Agora through MCP stdio. Agora is MA's local-first provider integration: it exposes real model-loading and MemoryPatch state instead of pretending memory was added to a prompt.

Website: https://zimoos.github.io/my-agent/

Release: https://github.com/zimoos/my-agent/releases/tag/v0.2.0-alpha.1
Release: https://github.com/zimoos/my-agent/releases/tag/v0.3.0

[Roadmap](ROADMAP.md) · [Changelog](CHANGELOG.md) · [Contributing](CONTRIBUTING.md) · [Discussions](https://github.com/zimoos/my-agent/discussions)

Expand Down Expand Up @@ -132,6 +132,7 @@ Inside MA:
```text
/ show slash command suggestions
/model switch model/profile with arrow keys
/memory open the project memory console
Tab complete selected command
Enter run selected slash command
ESC ESC switch session
Expand All @@ -144,6 +145,7 @@ User-facing slash commands:
| Command | Purpose |
| --- | --- |
| `/model` | Open the model/profile picker |
| `/memory` | Manage named Memories, multi-memory mounts, multi-target intake, automatic policy, and rollback |
| `/help` | Show user-facing commands |
| `/clear` | Clear current conversation |
| `/exit` | Exit MA |
Expand Down Expand Up @@ -182,7 +184,16 @@ DeepSeek/deepseek-v4-flash

MA can run Agora as a provider-owned MCP stdio subprocess instead of asking users to manage a local HTTP server. The TUI reports real provider stages such as local-model loading, memory mounting, and generation.

When the active provider is Agora, MA can expose verified MemoryPatch operations: mount, disable, internalize, roll back, and inspect state. MA treats a memory module as active only after Agora returns matching response metadata; it never fakes memory by injecting facts into a prompt.
When the active provider is Agora, users operate uniquely named, independently versioned Memories; MemoryPatch is the immutable version object. MA reports `mounted` only after a later Agora response returns the requested ordered Patch ids and an advanced PatchSet revision. It never fakes memory by injecting facts into a prompt.

`/memory` can mount zero or more Memories per project or conversation and hot-swap them at the next request boundary without restarting the base model. One intake batch may mix a new Memory with increments to multiple existing Memories; the source is extracted once and each target reports completed/noop/review/conflict/failed independently. Automatic intake requires explicit targets and runs after 4 new user turns or about 2,000 pending tokens plus 60 seconds of idle time. Failed targets can be retried alone or explicitly abandoned without blocking input or adding transcript noise.

Context Usage remains independent from MemoryPatch state: the TUI continues to show used/trigger/window/source from `agent.getContextUsage()`. Internalization never clears context, and compaction never claims to internalize memory.

The MA portable release pins the exact Agora `0.2.0` Mach-O artifact. Agora npm user artifacts contain no `.py`, `.pyc`, `.js`, or source maps and require no login or device activation.
MA marks an npm/bundled runtime as verified only when its Developer ID signature,
published npm integrity, accepted notarization evidence, and platform manifest SHA
match `src/provider/agora-runtime-lock.json`; ad-hoc candidates remain development-only.

## Built-In Tools

Expand Down
17 changes: 14 additions & 3 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ DeepSeek 无脑配置,本地小模型也能变生产力。

MA 的核心不是“又接了一个模型”,而是两件事:远程模型配置必须无脑,本地小模型必须能做真实项目。DeepSeek 走交互式配置,LM Studio/Qwen 则通过长上下文、工具调用加固、模型切换和 benchmark 驱动修复,把小模型转化成能持续工作的生产力。

`v0.2.0-alpha.1` 当前支持 LM Studio 本地模型、DeepSeek 官方 API,以及通过 MCP stdio 接入的 Agora。Agora 是 MA 的本地优先深度适配:它展示真实的模型加载和 MemoryPatch 状态,不会把记忆伪装成一段 prompt。
`v0.3.0` 当前支持 LM Studio 本地模型、DeepSeek 官方 API,以及通过 MCP stdio 接入的 Agora。Agora 是 MA 的本地优先深度适配:它展示真实的模型加载和 MemoryPatch 状态,不会把记忆伪装成一段 prompt。

官网:https://zimoos.github.io/my-agent/

发布页:https://github.com/zimoos/my-agent/releases/tag/v0.2.0-alpha.1
发布页:https://github.com/zimoos/my-agent/releases/tag/v0.3.0

[路线图](ROADMAP.md) · [变更记录](CHANGELOG.md) · [参与贡献](CONTRIBUTING.md) · [Discussions](https://github.com/zimoos/my-agent/discussions)

Expand Down Expand Up @@ -131,6 +131,7 @@ DeepSeek official -> Base URL -> credential name -> Keychain API key -> 发现 D
```text
/ 显示斜杠指令提示
/model 用上下键切换模型/profile
/memory 打开项目记忆控制台
Tab 补全当前选中的指令
Enter 执行当前选中的斜杠指令
ESC ESC 切换历史会话
Expand All @@ -143,6 +144,7 @@ ESC ESC 切换历史会话
| 指令 | 用途 |
| --- | --- |
| `/model` | 打开模型/profile 选择器 |
| `/memory` | 管理具名 Memory、多记忆挂载、多目标内化、自动策略和回滚 |
| `/help` | 查看用户可用指令 |
| `/clear` | 清空当前对话 |
| `/exit` | 退出 MA |
Expand Down Expand Up @@ -181,7 +183,16 @@ DeepSeek/deepseek-v4-flash

MA 可以把 Agora 作为 provider 自己管理的 MCP stdio 子进程运行,不要求用户维护本地 HTTP 服务。TUI 会展示真实的本地模型加载、记忆挂载和生成阶段。

当 Agora 是当前 provider 时,MA 会提供经过验证的 MemoryPatch 操作:挂载、停用、内化、回滚和状态查看。只有 Agora 响应 metadata 返回匹配的状态,MA 才会说明记忆已生效;不会把一段事实塞进 prompt 伪装成记忆。
当 Agora 是当前 provider 时,用户操作的是名称唯一、可持续迭代的 Memory;MemoryPatch 是它的不可变版本。只有下一次 Agora 响应 metadata 返回相同的 ordered Patch ids 和更新后的 PatchSet revision,MA 才会显示 `mounted`;不会把一段事实塞进 prompt 伪装成记忆。

`/memory` 可在项目或单个会话中同时挂载 0~N 个 Memory,并在下一次请求边界热拔插,不重启基座。内化时可以在一个 batch 中混合“新建 Memory”和“增量到多个旧 Memory”;同一 source 只提取一次,各目标独立报告 completed/noop/review/conflict/failed。自动内化必须显式选择目标,默认在 4 个新增用户回合或约 2000 pending tokens、空闲 60 秒后运行;失败目标可单独重试或明确放弃,输入框和 transcript 不受影响。

Context Usage 与 MemoryPatch 是两条独立状态:底栏始终从 `agent.getContextUsage()` 显示 used/trigger/window/source;内化不会清空 context,compact 也不会冒充记忆内化。

正式 MA portable 包锁定 Agora `0.2.0` 的 Mach-O 平台制品。Agora npm 用户制品不包含 `.py/.pyc/.js/.map`;用户无需登录或机器授权即可运行。
MA 只有在 Developer ID 签名、已发布 npm integrity、Apple 公证证据和平台
manifest SHA 均与 `src/provider/agora-runtime-lock.json` 一致时才显示 verified;
ad-hoc 候选包只能用于开发联调。

## 内置工具

Expand Down
11 changes: 7 additions & 4 deletions docs/agora-vip-provider-requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ MA 将 Agora 作为内部 VIP provider 适配:Agora 不再只是一个 OpenAI-
1. Agora provider 运行时
- `provider: "agora"` 必须使用 MCP stdio runtime。
- runtime readiness 仍以 `doctor`、`models_list`、`chat_complete` 为基础能力。
- memory 能力只有在完整 memory MCP tools 存在时启用
- memory 使用 granular capability matrix;缺少目录、下载或 intake 工具时只降级对应功能,不能关闭 Agora chat
- provider-owned Agora subprocess 必须在 MA 退出时关闭。

2. Agora 进度展示
Expand All @@ -27,16 +27,19 @@ MA 将 Agora 作为内部 VIP provider 适配:Agora 不再只是一个 OpenAI-
- 第一次本地模型聊天时,TUI 不能只显示 `thinking`,要显示类似 `Agora · 加载本地模型 ...`。
- 如果 Agora 只提供阶段级进度,MA 只展示阶段,不伪造文件级、权重级百分比。

3. Agora 底栏状态
- 当 active provider 是 Agora 时,TUI 底栏展示 Agora 专属摘要。
- 摘要至少包含:provider 标识、当前模型、memory status、已挂载 patch 数、Agora session 简写。
3. Agora 状态层级
- 第一行始终展示 provider、model 和 Context Usage(used/trigger/window/source)。
- 第二行仅在 Agora 下展示具名 Memory、版本、`+N`、verified/pending/stale 和后台 intake activity。
- session/binding/job/完整 patch id 只放在 `/memory status`,不再堆入主底栏。
- 该状态来自 runtime 当前 state 或 session meta 的 `providerState`。
- 普通 provider 不展示 Agora 专属 memory/session 信息。

4. MemoryPatch 状态
- Session meta 保留 `providerState`,字段包括 `provider_id`、`agora_session_id`、`memory.status`、`profile_id`、`binding_id`、`active_memory_patch_ids`、`last_verified_at`。
- MA 只能从 Agora `chat_complete` 响应 metadata 更新 mounted 证据。
- mount、disable、internalize、rollback 必须验证下一次 `chat_complete` metadata 后才报告成功。
- `/memory` 以具名 Memory 为第一层,提供多 Memory 挂载、新建/重命名、混合多目标内化、显式自动目标、历史和 CAS 回滚;Profile 仅作为后台 binding 实现。
- 自动 intake 一次提交显式目标列表;completed/noop 不重复,review/conflict/failed 只重试未完成目标;后台任务不得禁用输入框或写入 transcript。

5. 普通 provider 回归边界
- DeepSeek、LM Studio、OpenAI-compatible 的请求参数、重试策略、stream parser、tool-call 解析保持不变。
Expand Down
Loading