Skip to content

[建议] :为第 3 章补充可运行的示例代码 #23

Description

@YangLeeFangfei

建议内容

背景

第 3 章讲解了虚拟文件系统的六大工具和五种后端,代码片段很清晰,但都是配置片段,缺少完整可运行的 demo。读者看完后需要自己拼装 import、model 初始化、agent.invoke() 等代码,有一定门槛。

建议

整理了 ch03_1 ~ ch03_8 共 8 个可运行的 Python 示例,放在 examples/ch03/ 目录下。每个文件独立可运行,包含完整的 import、model 初始化、agent 调用。

以 ch03_1 为例:

"""
Ch03 示例1: StateBackend(默认临时存储)

deepagents 默认自带 6 个文件系统工具:
  ls, read_file, write_file, edit_file, glob, grep

StateBackend 把文件存在内存里,对话结束就丢失。
主 Agent 和子 Agent 共享同一份文件系统。
"""

import os
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from deepagents import create_deep_agent

load_dotenv(override=True)

model = ChatOpenAI(
    model="THUDM/glm-4-9b-chat",
    api_key=os.environ["SILICONFLOW_API_KEY"],
    base_url="https://api.siliconflow.cn/v1",
)

agent = create_deep_agent(model=model)

result = agent.invoke({
    "messages": [{
        "role": "user",
        "content": (
            "请执行以下验证步骤:\n"
            "1. 用 write_file 创建 /workspace/hello.txt,内容为 Hello DeepAgents\n"
            "2. 用 read_file 读取 /workspace/hello.txt,把读到的内容原样输出\n"
            "3. 用 edit_file 把 Hello 改为 你好\n"
            "4. 用 read_file 再读一次,把修改后的内容原样输出\n\n"
            "最后用一句话总结:StateBackend 是否工作正常?"
        )
    }]
})

print(result["messages"][-1].content)

其余 7 个文件覆盖:

┌────────┬───────────────────────────────────────────────────┐
│  文件内容                        │
├────────┼───────────────────────────────────────────────────┤
│ ch03_2FilesystemBackend 本地磁盘                        │
├────────┼───────────────────────────────────────────────────┤
│ ch03_3LocalShellBackend 本地 Shell 执行                 │
├────────┼───────────────────────────────────────────────────┤
│ ch03_4StoreBackend 跨会话持久化两轮对话验证)         │
├────────┼───────────────────────────────────────────────────┤
│ ch03_5CompositeBackend 混合路由两轮对话验证路由效果) │
├────────┼───────────────────────────────────────────────────┤
│ ch03_6FilesystemPermission 声明式权限                   │
├────────┼───────────────────────────────────────────────────┤
│ ch03_7GuardedBackend 继承方式自定义后端                 │
├────────┼───────────────────────────────────────────────────┤
│ ch03_8PolicyWrapper 包装器方式自定义后端                │
└────────┴───────────────────────────────────────────────────┘

教程末尾加一个表格链接即可不影响现有内容结构是否欢迎这类贡献如果可以我会提 PR### 理由 / 场景(选填)

_No response_

### 确认

- [x] 我已搜索过现有 Issue  Discussions确认这不是重复建议

Metadata

Metadata

Assignees

Labels

deferredAccepted but intentionally held for laterdocumentationImprovements or additions to documentationenhancementNew feature or request

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions