Context EngineeringNote 17
01 Input context:启动时上下文
它是什么
它是什么
Input context 是 Agent 启动时就进入系统上下文的信息,包括 system_prompt、memory、skills 和工具描述。它解决的问题是:哪些规则、长期约定和可发现能力应该每次运行前就被 Agent 知道。memory 是始终注入,skills 是先发现元信息、需要时再读完整内容。
最小代码
文件:deepagent_src/context_engineering_teach/01_input_context.py
agent = create_deep_agent(
model=model,
backend=backend,
system_prompt="You teach Deep Agents context engineering.",
memory=["/memories/AGENTS.md"],
skills=["/skills/"],
)
运行
uv run python deepagent_src/context_engineering_teach/01_input_context.py
预期输出:
input context real agent ok
验证方式
脚本会读取 /memories/AGENTS.md,格式化 memory prompt;同时扫描 /skills/ 下的 skill frontmatter,确认 context-scout 被发现。最后会真实调用一次 Agent。
常见误区
别把大段业务资料全塞进 system_prompt。总是相关、短小稳定的规则放 memory;按任务才用的工作流放 skills。
相关资源
查看示例代码:deepagent_src/context_engineering_teach/01_input_context.py
from __future__ import annotations from pathlib import Path from deepagents import MemoryMiddleware, create_deep_agent from deepagents.backends import FilesystemBackend from deepagents.middleware.skills import SkillsMiddleware, _list_skills_with_errors from _model import get_real_model from deepagent_src.agent_output import invoke_and_pretty_print ROOT_DIR = Path(__file__).resolve().parent WORKSPACE_DIR = ROOT_DIR / "workspace" MEMORY_PATH = "/memories/AGENTS.md" SKILL_SOURCE = "/skills/" def main() -> None: backend = FilesystemBackend(root_dir=WORKSPACE_DIR, virtual_mode=True) agent = create_deep_agent( model=get_real_model(), backend=backend, system_prompt="You teach Deep Agents context engineering.", memory=[MEMORY_PATH], skills=[SKILL_SOURCE], ) memory_file = backend.download_files([MEMORY_PATH])[0] assert memory_file.error is None assert memory_file.content is not None memory_prompt = MemoryMiddleware( backend=backend, sources=[MEMORY_PATH], )._format_agent_memory({MEMORY_PATH: memory_file.content.decode("utf-8")}) skills, error = _list_skills_with_errors(backend, SKILL_SOURCE) skills_prompt = SkillsMiddleware( backend=backend, sources=[SKILL_SOURCE], )._format_skills_list(skills) assert agent is not None assert error is None assert "Prefer concise Chinese explanations" in memory_prompt assert "context-scout" in skills_prompt result = invoke_and_pretty_print( agent, { "messages": [ { "role": "user", "content": ( "用一句中文说明你启动时能看到哪些 input context。" "只回答一句话。" ), } ] } ) assert result["messages"][-1].content print("input context real agent ok") if __name__ == "__main__": main()