Agent
启动维护中的 Agent Host,选择最小的产品扩展点,并从一个可观察行为开始迭代。
使用 Lenso 构建 Agent 产品
本页用于修改 Agent 产品本身。如果你希望让 Coding Agent 帮你开发 Lenso App、 Plugin、Capability 或 Runtime Extension,请从 使用 Agent 开发 Lenso开始。
Lenso Agent 开发从用户可观察的任务开始,而不是先造一套新运行时。先运行维护中的 Agent Host,再修改一个 Plugin Instance、Tool 或 Capability Provider。Host 统一处理 组合、配置、生命周期和 Generation 切换,Plugin 只持有新增行为。
哪些内容放在哪里
Agent Home Workspace
~/.lenso/agent/ Agent 启动时所在的目录
├── plugins/ 行为与配置 Agent 可以检查或编辑的源码
├── profiles/ Session 选择 AGENTS.md 与项目上下文
├── runtime/ Host 状态
└── sessions.sqlite3
切换仓库只会改变 Workspace,不会暗中改变 Agent 已安装的 Plugin、Profile、Session
历史或运行时 lineage。需要隔离的 Agent 时,把 LENSO_AGENT_HOME 设置为另一个
绝对路径。
1. 运行维护中的 Host
安装 Lenso Agent,完成一次认证,检查 App,然后启动交互式或 Headless Surface。 固定版本的安装命令见运行第一个 Agent Turn。
lenso-agent-cli auth login
lenso-agent-cli profiles install coding
lenso-agent-cli doctor --json
lenso-agent --profile code
运行一个非交互 Turn:
lenso-agent-cli --profile code "Summarize this workspace README."
此时你已经拥有一个完整 Agent 应用。不要为了增加一个命令、存储后端、Prompt 来源或模型集成就 fork Agent Loop。
2. 选择最小改动
| 目标结果 | 首选扩展点 | 继续阅读 |
|---|---|---|
| 修改限制、模型选择、存储路径或策略 | 配置已有 Plugin Instance | 配置 Agent |
| 增加一个模型可调用的动作 | 添加 Agent Tool Plugin | 为 Agent 添加一个 Tool |
| 替换 Memory、Session、Compaction、Secret 或其他角色 | 实现对应 Capability | Plugin 与 Capability |
| 改变调度、时钟、进程执行或其他 Host 机制 | 添加 Driver 或 Execution Adapter | Execution Adapter |
如果有多行似乎都适用,先从配置开始。只有现有 Plugin Contract 无法表达所需行为时, 才需要增加代码。
3. 安装一种 Agent 体验
官方 coding experience 会安装可检查的 Plugin 配置与三个 Profile:
lenso-agent-cli profiles install coding
lenso-agent --profile code
code 用于编辑和受限进程,code-sandbox 使用无网络的隔离进程 Provider,plan
用于只读规划。Profile 为一个 Session 选择已配置的 Plugin Instance,不会复制它们
的配置。
4. 完成一个改动并观察结果
每个 Agent 功能都使用同一条循环:
- 说清可观察结果,例如“Agent 可以把文本转换为大写”。
- 修改
plugins/下的一个文件,或构建并安装一个 Plugin。 - 从 Agent Home 运行
lenso app show,检查 derived App。 - 启动一个新 Turn,观察所选 Tool 或 Provider。
- 禁用或移除这个差异,确认原有行为恢复。
Host 会把每个接受的改动解析为新的不可变 Generation。一个 Turn 固定使用其启动时 的 Generation;替代版本通过 readiness 后,后续 Turn 才会使用它。
5. 只在需要时添加产品 Surface
Lenso Agent 提供终端、headless CLI 与可嵌入 Web surface。产品行为仍来自 Host 选择的 Plugin inventory。Web shell 不会成为第二个组合 authority,远程配置系统也不会把 可执行 Plan 发送给 Kernel。
下一步可按照为 Agent 添加一个 Tool完成一条完整编码切片,或 阅读配置 Agent,在不新写 Plugin 的情况下改变行为。