Por padrão, a API do modelo de linguagem grande (LLM) depende de um risco fundamentalmente alto Token Escolha: retornamos conteúdo de texto simples ou dados estruturados?
Você dá muita importância à escolha do primeiro Token no the weather in tokyo
No caso de
"o"
exceto para fetch_weather
caso, é um token especial usado para representar o início do objeto JSON.
|JSON>
Ao fazer a modelagem de linguagem grande (LLM) do início ao fimProduza json e, em seguida, use algum token de linguagem natural (por exemplo request_human_input
talvez done_for_now
) para declarar sua intenção (em vez de, como no caso de check_weather_in_city
Com ferramentas "padrão" como essas, você pode obter melhores resultados.
Novamente, isso pode não resultar em nenhum ganho de desempenho, mas você deve experimentar e certificar-se de que está livre para tentar alguns métodos não convencionais para obter os melhores resultados.
class Options:
urgency: Literal["low", "medium", "high"]
format: Literal["free_text", "yes_no", "multiple_choice"]
choices: List[str]
# 用于人类交互的工具定义
class RequestHumanInput:
intent: "request_human_input"
question: str
context: str
options: Options
# 在代理循环中的使用示例
if nextStep.intent == 'request_human_input':
thread.events.append({
type: 'human_input_requested',
data: nextStep
})
thread_id = await save_state(thread)
await notify_human(nextStep, thread_id)
return # 中断循环并等待带有线程 ID 的响应返回
else:
# ... 其他情况
Depois disso, você pode receber um webhook de um sistema que lida com slack, e-mail, SMS ou outros eventos.
@app.post('/webhook')
def webhook(req: Request):
thread_id = req.body.threadId
thread = await load_state(thread_id)
thread.events.push({
type: 'response_from_human',
data: req.body
})
# ... 为简洁起见已简化,你可能不希望在这里阻塞 web worker
next_step = await determine_next_step(thread_to_prompt(thread))
thread.events.append(next_step)
result = await handle_next_step(thread, next_step)
# todo - 循环、中断或任何你想要的操作
return {"status": "ok"}
O texto acima contém informações de Elemento 5 - Harmonização do status de implementação e do status operacionaleElemento 8 - Assuma o controle do seu fluxo de controleeElemento 3 - Assuma o controle de sua janela de contexto responder cantando Elemento 4 - Ferramentas como resultados estruturados e vários outros elementos do modelo.
Se usarmos os dados do Elemento 3 - Assuma o controle de sua janela de contexto após algumas rodadas de diálogo, nossa janela de contexto poderá ter a seguinte aparência:
(为简洁起见已省略)
<slack_message>
From: @alex
Channel: #deployments
Text: Can you deploy backend v1.2.3 to production?
Thread: []
</slack_message>
<request_human_input>
intent: "request_human_input"
question: "Would you like to proceed with deploying v1.2.3 to production?"
context: "This is a production deployment that will affect live users."
options: {
urgency: "high"
format: "yes_no"
}
</request_human_input>
<human_response>
response: "yes please proceed"
approved: true
timestamp: "2024-03-15T10:30:00Z"
user: "alex@company.com"
</human_response>
<deploy_backend>
intent: "deploy_backend"
tag: "v1.2.3"
environment: "production"
</deploy_backend>
<deploy_backend_result>
status: "success"
message: "Deployment v1.2.3 to production completed successfully."
timestamp: "2024-03-15T10:30:00Z"
</deploy_backend_result>
Benefícios.
- instruções clarasUso de diferentes ferramentas para diferentes tipos de contato humano: O uso de diferentes ferramentas para diferentes tipos de contato humano pode tornar as instruções do Modelo de Linguagem Ampla (LLM) mais específicas.
- Circulação interna versus externaPode ser usado em ambientes tradicionais chatGPT interface de estilo além de Permitir fluxos de trabalho de proxy cujo fluxo de controle e inicialização de contexto podem ser
Agent->Human
em vez deHuman->Agent
(por exemplo, agentes acionados por cron ou eventos) - acesso multiusuárioA entrada de diferentes usuários pode ser facilmente monitorada e coordenada por meio de eventos estruturados
- multiagenteAbstrações simples podem ser facilmente estendidas para suportar
Agent->Agent
Solicitações e respostas - durabilidade: com Elemento 6 - Iniciar/suspender/retomar por meio de uma API simples Combinados, eles podem criar fluxos de trabalho persistentes, confiáveis e introspectivos para várias pessoas
Clique aqui para saber mais sobre agentes de circulação externa
junto com Elemento 11 - Acione de qualquer lugar, encontre os usuários onde eles estão Funciona bem com