lang-code是一个基于langgraph构建的cli智能体。功能类似于claude code,主要注重私有数据安全性。
点击空白处退出提示
lang-code是一个基于langgraph构建的cli智能体。功能类似于claude code,主要注重私有数据安全性。
1.复杂任务拆分—agent自动将大任务拆为subtask,每个subtask可派生子agent独立执行
2.上下文窗口限制—maybe_compress节点在token超阈值时自动压缩早期对话为摘要,保留关键信息
3.安全执行—路径沙箱防止越权访问配置文件,命令黑名单阻止破坏性操作
4.跨会话记忆—用户偏好自动提取保存,agent重启后仍可用
5.人工监督—HITL审批关键操作(如execute),避免不可逆操作
6.工具扩展—插件/MCP/技能三种扩展机制,无需修改核心代码
【技术栈】
-包管理:uv
-CLI框架:Typer+Rich
-Agent框架:LangGraph
-状态管理:StateGraph+AgentState(Pydantic)
-持久化:文件系统JSON(项目/任务)+SQLite(检查点)
-配置:YAML(.lang-code/lang-code.yaml),Pydantic模型校验
【实现功能】
核心Agent:
-LangGraph图编排:START→maybe_compress→llm→human_approval→tools→check_completion→END
-多轮对话(chat)与一次性任务(run)两种运行模式
-LLM调用自动重试(指数退避)
-对话历史压缩(token超阈值时自动摘要)
-子代理(subagent):通过spawn_subagent信号工具派生子图执行子任务,结果通过finalize节点返回
-LangGraphsubgraphs流式事件处理
工具系统:
-内置工具:读/写/编辑文件、glob、grep、ls、shell执行、计算器、web_search
-安全管理:路径沙箱(限制在workdir内且禁止操作.lang-code目录)、命令黑名单
-Todo系统:write_todo/read_todo管理项目和子任务,自动完成检测
人机协作(HITL):
-工具调用需审批时通过interrupt()暂停,用户可选择once/always/reject
-审批状态持久化(approved_tool_calls按工具名追踪)
-支持主图和子图独立HITL
扩展能力:
-插件系统:.py文件自动加载tools列表
-技能系统:带YAMLfrontmatter的markdown文件注入systemprompt
-MCP集成:通过langchain-mcp-adapters调用外部MCP





评论