codex 这种输出完让用户选择的是怎么实现的
- 内容介绍
- 文章标签
- 相关推荐
ScreenShot2026-04-261146080201776×1054 211 KB
网友解答:--【壹】--:
首先你要知道几个概念:
- MCP:模型上下文协议,规定模型和外部世界如何交互的协议
- Tools:基于 MCP 定义模型可以调用的外部工具
- Function Calling:模型会按照 MCP 规定的格式调用外部工具
- ReAct Loop:Reasoning-Acting 循环,Agent 设计中让模型交替进行行动和思考
有了这四者,在 ReAct 循环中,模型会基于 MCP 和 Function Calling 让不断使用 Tools 获取外界信息。
知道了这些,那么这个 Ask 怎么实现就很简单了:
- 首先 Agent 中会基于 MCP 定义如何 Ask 的 Tool。
- 由于 ReAct 的存在,模型在认为需要你进行进一步的确认时,会通过 Function Calling 调用 Ask 的 Tool,把要问的问题作为工具调用的参数传回来。
- Codex 会解析工具调用,把问题显示出来。
- 你回答问题,作为工具调用的结果,把回答的结果传回给模型
- 模型进入下一次 ReAct 循环,开始思考并进行下一步都行动
不仅是这个功能这样,像平时模型对文件进行读写,执行命令等等,都是这样的过程。
另外 Codex cli 是开源的,可以看看源码实现: GitHub - openai/codex: Lightweight coding agent that runs in your terminal · GitHub
或者看看另一家 OpenCode 的实现:GitHub - anomalyco/opencode: The open source coding agent. · GitHub
--【贰】--:
欸?为啥你这没IDE背景
image433×144 9.97 KB
--【叁】--:
codex内置的工具:request_user_input,我印象里之前只能在plan模式下使用,后续增加了新的feature开了之后可以在默认模式下使用
--【肆】--:
就是个工具调用,在UI上展示出来罢了,没什么特别的。
--【伍】--:
忘了cx cli了 确实都可以看看, 学习一下
--【陆】--:
类似copilot的user_ask
或者opencode的question
本质tool
感兴趣可以看一下opencode的开源实现
--【柒】--:
image2000×204 23 KB
ai的回答,我是桌面端应用的原因吧。
--【捌】--:
哦哦哦,计划模式就可以了。。。。。。。。
--【玖】--:
ToolUse,Ask User Question这种。
直观理解的话,想想如果自己要做Agent,想搞类似的东西,你可以注入一个上下文叫:
当你想对用户说“咕咕嘎嘎”的时候,输出[tool][咕咕嘎嘎]。
然后做客户端,检测到这一段话,就不把内容直接展示,而是大声播放一段咕咕嘎嘎。
这就让模型有了不止说话,还有了咕咕嘎嘎的能力。
然后这么一堆咕咕嘎嘎,我们就叫他Tools。
--【拾】--:
不清楚哎,是不是我用账号登的原因,之前用api好像见过这个
--【拾壹】--:
推荐一个superpowers skill, 这个skill在实现功能前也会一步一步问需求
--【拾贰】--:
langgraph/adk的人工介入机制吧?需要 ck 点恢复。
--【拾叁】--: Diana:
开源实现
其实Codex也是开源的,都可以看看怎么实现的
--【拾肆】--:
这个交互应该不是很难实现 我记得有篇博客说了这个的
--【拾伍】--:
非计划模式也是可以的,就是你可以在提示词中说什么有问题主动问我,或者说Ask questions,它就会主动调这个。它本质上是一个Tools。
--【拾陆】--:
image1803×781 64 KB
左下角计划模式点开,应该就行吧。是这个吧
ScreenShot2026-04-261146080201776×1054 211 KB
网友解答:--【壹】--:
首先你要知道几个概念:
- MCP:模型上下文协议,规定模型和外部世界如何交互的协议
- Tools:基于 MCP 定义模型可以调用的外部工具
- Function Calling:模型会按照 MCP 规定的格式调用外部工具
- ReAct Loop:Reasoning-Acting 循环,Agent 设计中让模型交替进行行动和思考
有了这四者,在 ReAct 循环中,模型会基于 MCP 和 Function Calling 让不断使用 Tools 获取外界信息。
知道了这些,那么这个 Ask 怎么实现就很简单了:
- 首先 Agent 中会基于 MCP 定义如何 Ask 的 Tool。
- 由于 ReAct 的存在,模型在认为需要你进行进一步的确认时,会通过 Function Calling 调用 Ask 的 Tool,把要问的问题作为工具调用的参数传回来。
- Codex 会解析工具调用,把问题显示出来。
- 你回答问题,作为工具调用的结果,把回答的结果传回给模型
- 模型进入下一次 ReAct 循环,开始思考并进行下一步都行动
不仅是这个功能这样,像平时模型对文件进行读写,执行命令等等,都是这样的过程。
另外 Codex cli 是开源的,可以看看源码实现: GitHub - openai/codex: Lightweight coding agent that runs in your terminal · GitHub
或者看看另一家 OpenCode 的实现:GitHub - anomalyco/opencode: The open source coding agent. · GitHub
--【贰】--:
欸?为啥你这没IDE背景
image433×144 9.97 KB
--【叁】--:
codex内置的工具:request_user_input,我印象里之前只能在plan模式下使用,后续增加了新的feature开了之后可以在默认模式下使用
--【肆】--:
就是个工具调用,在UI上展示出来罢了,没什么特别的。
--【伍】--:
忘了cx cli了 确实都可以看看, 学习一下
--【陆】--:
类似copilot的user_ask
或者opencode的question
本质tool
感兴趣可以看一下opencode的开源实现
--【柒】--:
image2000×204 23 KB
ai的回答,我是桌面端应用的原因吧。
--【捌】--:
哦哦哦,计划模式就可以了。。。。。。。。
--【玖】--:
ToolUse,Ask User Question这种。
直观理解的话,想想如果自己要做Agent,想搞类似的东西,你可以注入一个上下文叫:
当你想对用户说“咕咕嘎嘎”的时候,输出[tool][咕咕嘎嘎]。
然后做客户端,检测到这一段话,就不把内容直接展示,而是大声播放一段咕咕嘎嘎。
这就让模型有了不止说话,还有了咕咕嘎嘎的能力。
然后这么一堆咕咕嘎嘎,我们就叫他Tools。
--【拾】--:
不清楚哎,是不是我用账号登的原因,之前用api好像见过这个
--【拾壹】--:
推荐一个superpowers skill, 这个skill在实现功能前也会一步一步问需求
--【拾贰】--:
langgraph/adk的人工介入机制吧?需要 ck 点恢复。
--【拾叁】--: Diana:
开源实现
其实Codex也是开源的,都可以看看怎么实现的
--【拾肆】--:
这个交互应该不是很难实现 我记得有篇博客说了这个的
--【拾伍】--:
非计划模式也是可以的,就是你可以在提示词中说什么有问题主动问我,或者说Ask questions,它就会主动调这个。它本质上是一个Tools。
--【拾陆】--:
image1803×781 64 KB
左下角计划模式点开,应该就行吧。是这个吧

