Agently Agent Docs
本页面向 Claude Code、Codex 与其他 Coding Agent,提供 Agently 的核心能力、推荐模式、可复制的代码模板,用于快速实现可靠的 AI 应用。
目标与边界
- 目标:构建稳定、可维护、可编排的 AI 应用代码。
- 边界:Agently 是框架层,运维与评估可接入外部平台。
核心对象
- Agent:高层入口,支持 prompt、输出控制与工具调用。
- Request:一次请求的配置与调用。
- ModelResponse:一次请求快照,支持多次读取结果。
- Output Format:结构化输出约束。
- TriggerFlow:事件驱动编排。
标准工作流
- 配置模型(OpenAICompatible)。
- 设计分层 prompt(agent/request)。
- 用 Output Format 定义稳定结构。
get_response()固定一次请求,再读取结果。- 复杂流程用 TriggerFlow。
关键模式与模板
1. 结构化输出(稳定结果)
python
from agently import Agently
agent = Agently.create_agent()
result = (
agent
.input("写一个发布计划,包含目标与里程碑")
.output({
"goal": ("str", "目标"),
"milestones": [
{"title": ("str", "里程碑"), "date": ("str", "日期")}
]
})
.start()
)
print(result)2. 单次请求,多次读取(避免重复请求)
python
from agently import Agently
agent = Agently.create_agent()
response = (
agent
.input("用一句话介绍 Agently")
.output({"intro": ("str", "一句话")})
.get_response()
)
print(response.get_text())
print(response.get_data())
print(response.get_meta())3. 即时流式结构化输出(Instant)
python
from agently import Agently
agent = Agently.create_agent()
response = (
agent
.input("用一句话解释递归,并给出 2 个提示")
.output({
"definition": ("str", "Short definition"),
"tips": [("str", "Short tip")]
})
.get_response()
)
for msg in response.get_generator(type="instant"):
if msg.path == "definition" and msg.delta:
print(msg.delta, end="", flush=True)
if msg.wildcard_path == "tips[*]" and msg.delta:
print(msg.delta, end="", flush=True)
print()4. 分层 Prompt(上下文治理)
python
from agently import Agently
agent = Agently.create_agent()
agent.set_agent_prompt("system", "你是企业知识助手")
agent.set_agent_prompt("instruct", ["回答简短、可执行"])
print(
agent
.set_request_prompt("input", "给出一条部署建议")
.output({"advice": ("str", "一句话")})
.start()
)5. TriggerFlow 编排(事件驱动)
python
from agently import TriggerFlow, TriggerFlowEventData
flow = TriggerFlow()
@flow.chunk
async def normalize(data: TriggerFlowEventData):
return str(data.value).strip().lower()
@flow.chunk
async def greet(data: TriggerFlowEventData):
return f"hi {data.value}"
flow.to(normalize).to(greet).end()
print(flow.start(" Agently "))反模式(避免)
- 在链式调用中反复
get_text()/get_data(),会触发多次请求。 - 长流程不用 TriggerFlow,导致分支与并发难以维护。
- 将所有上下文塞进 request,忽略 agent 级别复用。
Agent 自检清单
- 模型配置已设置(OpenAICompatible)。
- 输出已结构化,关键字段可
ensure_keys。 - 已使用
get_response()固定一次请求。 - 多步流程使用 TriggerFlow。
- 需要流式时使用
get_generator(...)/get_async_generator(...)。