支持私有化部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


Replit Agent内部提示词、JSON工具配置详解,AI程序员一句话生成软件

发布日期:2025-05-22 06:32:58 浏览次数: 1550 作者:Joyce Birkins
推荐语

探索Replit Agent编程神器,洞悉AI编程工具的内部提示词结构。

核心内容:
1. Replit Agent内部提示词概览及产品介绍
2. tool.json文件结构与功能解析
3. prompt.txt文件详解及代码文件搜索编辑技巧

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家

Github有个开源项目展示目前主要编程Agent的内部提示词https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools/tree/main,包括Manus,Devin, Dia Browser,Windsurf Agent, VSCode Agent等

这期以Replit Agent为例,梳理一下提示词的结构。Replit提示词分为两个文件,一个总的prompt.txt,一个对每个AI使用的工具描述tool.json文件,下面分两个小节详细剖析这两个提示词文件

在分析Replit Agent提示词之前先了解一下这个产品

Replit Agent相当于一个AI加持的编程开发环境(IDE),用户在对话框一句话描述想要的编程功能,AI自己生成相应代码和整个项目文件,Agent还直接可以在Replit部署服务,每个app可以直接看到最终渲染形态,也可以邀请团队

免费用户只能创建3个app,有10个checkpoint,每跟Agent对话一次,包括修改某个功能或者重新生成一个app,只要对话执行一次就算1个checkpoint

image.png

描述指令后就会跳转到上图的第二个界面,Agent先判断app应用类型,需要的额外集成功能,比如OpenAi的API相关工具和Web Scrape网页抓取工具,接着一步步先按照AI自己的规划执行,需要填写OpenAI API Key等操作时会暂停询问你,对这个暂停询问的回答不会耗费Checkpoint

接下来先介绍tool.json文件,后介绍总的prompt.txt

_25S7503.png

01

Replit Agent的tool.json文件尽可能按相似功能和流程顺序整理,大致框架如下图

Screenshot 2025-05-19 at 8.49.57 PM.png

第一个工具就是restart_workflow,第二个工具是search_filesystem,这两个工具对应Replit Agent应用的修改,比如右边界面打开并编辑py文件,修改完项目文件后再重启streamlit

针对Replit Agent这种一键生成app的Agent编程产品,过程中肯定需要跟用户不断磨合沟通修改,不能一步到位,所以把代码文件搜索编辑和重启工作流的两个tool放在第一步是可以理解的,而且restart workflow包括start workflow即第一次第一步的对话工作流启动

image.png

File Management

具体来讲,search_filesystem在代码库搜索相应文件的搜索方式有: class_names (类名搜索),code (代码片段搜索),function_names (函数名搜索)和uery_description (自然语言查询)

uery_description 执行语义相似性搜索,适用于更复杂、更模糊的搜索需求,例如:"查找数据库连接的错误处理"

{
  "class_names": ["UserAuth""Authentication"],
  "function_names": ["login""authenticate""verifyToken"],
  "query_description""查找用户认证和授权的实现代码"
}

str_replace_editor在用户多轮交互中持久地查看(view)、创建(create)、字符串替换(str_replace)、插入(insert)和撤销(undo_edit)文件,要用这个工具来查看编辑文件,搭配上面的search_filesystem

image.png

还有个repo_overview 概括性描述代码仓库的主要功能、模块、结构等信息,在检索之前,Agent需要先查看file_system and repo_overview,再用search_filesystem进行本地检索

文件目录是直接在root权限下,而且目录Replit提示词是要求必须是相对路径

Code Environment

packager_tool参数是先找到dependency_list再install_or_uninstall,并且指定安装dependency tool的编程语言language_or_system

下图Agent在install openai

Screenshot 2025-05-14 at 5.30.42 PM.png

programming_language_install_tool用户安装编程语言和系统环境,特别适用于当程序无法运行时,可能是因为缺少相应的编程语言环境,比如python版本不对

bash提供运行 Linux Bash 命令的能力。适用于脚本执行、包安装、文件操作、服务启动等任务,参数command是要运行的 bash 命令,restart重启工具环境

image.png

用户对话界面的dependencies安装过程和bash窗口

image.png

PostgreSQL

create_postgresql_database_tool 创建一个用于项目的 PostgreSQL 数据库。创建成功后,会生成一系列环境变量(DATABASE_URL,PGPORT,PGUSER,PGPASSWORD,PGDATABASE,PGHOST)用于项目连接数据库。

check_database_status检查已创建的数据库是否可用和可连接。

execute_sql_tool使用 SQL 查询对数据库进行查看、插入、更新操作、调试错误或访问数据库结构,配置了3个工具使用规则:优先使用该工具修复数据库错误,而非手动写如 db.drop_table() 的代码 ; 使用标准 SQL 语法编写清晰格式良好的查询语句 ; 用于数据库交互、数据操作、查询优化

image.png

免费用户有10G的postgreSQL存储空间

Workflow

workflows_set_run_config_tool在项目开始时,后台生成一个任务表,适合开发服务器、构建流程或任何其他需要长期运行的进程,具体的参数: name标识每个任务的名称,command要执行的shell命令,wait_for_port填写具体需要监听的端口,用于让Agent确认端口是否准备好

比如启动 Node.js 服务器

{
  "name""Server",
  "command""npm run dev",
  "wait_for_port"5000
}

workflows_remove_run_config_tool删除之前配置过的后台任务,参数只有任务名称name

image.png

下图是用户界面展示的Workflow在Configure Streamlit

image.png

report_progress:用用于向用户报告已完成的事项和正在进行的任务。只有当用户确认某个主要任务已完成时,才可以调用这个工具。调用后,它会生成一段简洁的进展总结,并主动询问用户下一步要做什么。具体规则包括:

必须等待用户确认完成任务后才能使用;一次只能总结 5 个事项以内;使用简单、日常用语,不使用专业术语;每个完成项前加 ✓,进行中项前加 →;最后一行一定要问:“下一步做什么?”在下图黄色笔记高亮的区域就是report_progress在使用时具体的行为

image.png

suggest_deploy没有参数。当Agent觉得项目开发已完成时告知用户“你的项目已经准备好可以部署了。”调用这个工具之后,部署流程将交由 Replit Deployments 自动完成,不需要Agent再继续操作或检查,Agent能再继续进行别的动作(Terminal Tool)具体规则描述: 只有在确认项目能正常运行、功能已完成时或者当用户主动提出“现在部署项目”时,立即调用才调用这个工具

调用这个工具不会真的“部署”项目,而是建议用户进行部署。真正的部署动作需要用户手动点击确认。Replit 会自动完成部署所需的一切操作:编译和打包项目,设置托管服务器,配置 HTTPS (TLS),检查程序是否能正常运行,部署成功后,用户的项目将出现在yourproject.replit.app,如下图右侧展示的,部署需要订阅计划付费升级

image.png

Replit Agent有三个application_feedback_tool类别,它们都是用于向用户展示应用运行效果并收集反馈的工具,但各自面向的应用类型不同

web_application_feedback_tool用于确认 Web 应用是否已成功运行。它会访问指定的网页路由(如 /dashboard);捕获网页截图;查看日志确认运行情况;如果应用运行成功,就会展示网页界面并向用户提问是否满意或是否继续调整

参数: query要问用户的问题(比如“您对这个界面满意吗?”);website_route: 可选,用于指定网页路径(如 /products/list);workflow_name: 必填,用于识别哪个 Workflow 提供了这个 Web 服务

下图是用户界面中Agent完成report_progress后利用web_application_feedback_tool截屏检查后+类似report_process用词风格、输出结构的汇报内容

Screenshot 2025-05-19 at 7.17.24 PM.png

在对Query参数的描述中,要求指令跟之前report_progress类似,比如都一次只能总结 5 个事项以内;使用简单、日常用语,不使用专业术语;每个完成项前加 ✓,进行中项前加 →,只是

image.png

另外我发现在Replit prompt.txt提示词中,关于迭代过程的process的反馈也分为两个,一个是常规向用户确认反馈的report_progress,另一个这3个针对不同类型编程应用的特定反馈。 这个迭代过程当然越短越好,同时如果中断了,让Agent自己解决中断出现的问题再继续

1747655072742.png

shell_command_application_feedback_tool 运行 CLI 或交互式命令行应用,并收集用户对行为或输出的反馈,参数:shell_command要运行的命令,如 python app.py;query Agent要问用户的问题;workflow_name 哪个 workflow 下执行命令

vnc_window_application_feedback 用于运行需要图形界面(GUI)显示的桌面应用,通过 VNC(远程桌面)将界面展示给用户,并收集反馈: 运行 PyGame、Tkinter、OpenCV 等桌面窗口程序;检查键盘、鼠标事件是否生效;验证窗口视觉行为是否符合预期。参数vnc_execution_command 用于启动窗口程序的命令;query要问用户的问题;workflow_name哪个 workflow 下执行命令

这3个跟feedback_tool类似,都需要主动询问用户query和workflow_name,只是一个检查网络端口,一个检查shell命令,一个检查虚拟桌面VNC

image.png

针对Workflow的提示词能看出这3个application_feedback_tool很重要,控制着最开始的restart_workflow,不需要手动重启,而是靠这几个反馈工具根据用户需求自动重启,重启包括网页app的端口分配和其他的命令执行

每一步的执行既需要整理目前所有可参考信息,有需要再次确认feedback_tool

image.png

因为一般都生成需要LLM和搜索API的应用,需要提供一个安全上传密钥并安全地添加到环境变量中的工具,所以专门有ask_secrets,当Agent检测到某个关键的 API 密钥尚未提供时,会调用该工具向用户请求填写API Key

参数包括user_message: 给用户的提示语,说明为什么需要这些密钥,并用简单明了、礼貌友好的语言介绍什么是密钥。secret_keys 要请求的密钥名称

check_secrets用于检查某个密钥是否已经存在于当前环境变量中,不返回具体值,只返回是否存在。这两个搭配使用

image.png

下图是我让Agent修改为OpenAi Compatible API,这样可以自定义Base url地址。修改后Agent就说"请提供这两个值,我们将更新代码以使用xxx",随即出现填写栏。这里的询问+填写api key都属于ask_secrets工具,下图黄色高亮了2 secrets requested

image.png

tool.json最后还有一些标签

image.png

其中policy_spec和important都涉及prompt.txt中的内容,下面开始梳理Replit Agent的prompt.txt

image.png

02

这个截屏显示的提示词除了Operating Principles,其他各部分上文workflow小节已经提到。由此可见主要的提示词都是针对Replit Agent的工作流,每个步骤需要的检查,每个步骤的工具使用条件,比如已经有tool.json文件,应尽可能使用已经有的Replit工具,禁止创建容器和虚拟环境,这会增加项目复杂度,另外强调了每个工具作用,比如查看PostgreSQL就要有tool.json的execute_sql_tool`

整体因为编程的严格性,不允许Agent随便删除更新,不允许未经用户许可的随意操作

image.png

下面这个截图editing files和best Practice还是针对工具什么时候使用的描述

其中debugging process,需要automatic_updates系统自动生成的log,webview_console_logs则专门针对浏览器的log,除此之外要求深入详细分析问题,还得分析root cause,结合着相关文件分析(本地文件,feedback_tool的网页截图,database_status状态类),最后3次都不行再问用户

而跟用户交互除了解决用户提出的编程需求和单纯的问答需求,针对付费、会员这类关于商务的内容,不允许ai替代Replit公司回答

1747657186280.png

Communication Policy跟用户交流的语言要求,rollback,API key,deploy等只能让用户按的功能键

而Proactive Policy是Agent主动询问用户的要求,一些细碎的log和警告不需要让用户知道(除非用户自己主动要求),一些重大的更新(比如改变api)才主动问用户,一些日志,状态信息都不要问用户要,用户只问问题,跟代码执行无关时只回答用户问题,时刻跟随用户的指令

image.png

最后是data integrity Policy用来确保Agent的内容不是乱回答的,都有真实api提供的真实来源,减少幻觉。 实在回答不出来直接报错(并且报错的信息要写详细),而不是假回答。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询