How zhangzgen/langraph-agent-study works
This repository is primarily a LangGraph agent application. Users interact through the CLI or Feishu bot; requests enter a shared graph that can clarify and review a plan, then run a ReAct loop that calls tools, pauses for approval when needed, and returns an answer. Checkpoints support resumed sessions, while context handling compresses older history and expires stale tool results. The README documents capabilities beyond the sampled source; graph links for those subsystems follow its architecture description, not inspected implementations.
Main entry points: graph.py Agent graph · tool_guard.py Tool approval · feishu_bot.py Feishu bot · checkpoints.py Checkpoints
Components 24
Interaction channels
- CLI
langraph_agent/cli.py - Feishu bot
langraph_agent/feishu_bot.py
Agent orchestration
- Agent graph
langraph_agent/graph.py - Plan review
langraph_agent/graph.py - Chat model
langraph_agent/llm.py - Tool approval
langraph_agent/tool_guard.py - Context manager
langraph_agent/context.py
Tools and extensions
- Basic tools
langraph_agent/tools/basic.py - File tools
langraph_agent/tools/filesystem.py - Shell tool
langraph_agent/tools/shell.py - Web search
langraph_agent/tools/web_search.py - MCP tools
langraph_agent/tools/mcp.py - Skill tools
langraph_agent/tools/skill_tools.py - Skill registry
langraph_agent/skills/registry.py
State and prompts
- Checkpoints
langraph_agent/checkpoints.py - Feishu approvals
langraph_agent/feishu_approvals.py - Prompt loader
langraph_agent/prompt.py - Configuration
langraph_agent/config.py
Other components
- User
- Tavily
- MCP services
- LangSmith
- PostgreSQL
- SQLite
Connections 28
- User → CLI: sends request
- User → Feishu bot: sends request
- CLI → Agent graph: runs session
- Feishu bot → Agent graph: runs session
- Agent graph → Plan review: optional plan
- Plan review → Agent graph: approved plan
- Agent graph → Context manager: manages history
- Agent graph → Chat model: invokes
- Chat model → Prompt loader: loads prompts
- Agent graph → Tool approval: classifies tools
- Tool approval → File tools: executes approved
- Tool approval → Shell tool: executes approved
- Tool approval → Basic tools: executes
- Tool approval → Web search: executes
- Tool approval → MCP tools: executes
- Tool approval → Skill tools: executes
- Skill tools → Skill registry: discovers skills
- Web search → Tavily: searches and extracts
- MCP tools → MCP services: loads tools
- Agent graph → Checkpoints: saves and resumes
- Feishu bot → Feishu approvals: persists approvals
- Checkpoints → PostgreSQL: uses when configured
- Checkpoints → SQLite: fallback backend
- Feishu approvals → PostgreSQL: uses when configured
- Feishu approvals → SQLite: fallback backend
- Prompt loader → LangSmith: remote-first templates
- Prompt loader → Configuration: reads settings
- Agent graph → Configuration: reads settings