toolkit
feishu.agent.toolkit
¶
飞书工具库:按产品分模块的参数化工具工厂,与产品文案 / 选择解耦。
每个工厂封装一个通用飞书操作(列日程、建任务、查文档……),把工具描述、name、locale、是否需要审批、
是否以用户身份执行、所需授权范围等作为参数注入,并产出一个 feishu.agent.tools.Tool。处理函数经
feishu.agent.context.current_tool_context 读取按轮上下文以拿到(用户态)飞书客户端,机器人只要
「选择 + 覆盖文案」即可注册。
审批语义:把 requires_approval=True 的工具交给 feishu.agent.loop.Agent 后,模型发起调用会先挂起并发出
审批卡片;用户批准后处理函数才真正执行——故写类工具的处理函数直接执行写操作,提议由 requires_approval 驱动。
approve_approval_task
¶
approve_approval_task(*, description: str, name: str = 'approve_approval_task', locale: str = 'zh-CN', requires_approval: bool = True, as_user: bool = False, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:同意一个审批任务,返回一个需审批的 feishu.agent.tools.Tool。
requires_approval=True 时,feishu.agent.loop.Agent 先挂起并发审批卡片;用户批准后处理函数才执行写入,
调用 client.approval.tasks.approve(task)。审批人身份**强制**为当前轮的请求用户
(feishu.agent.context.ToolContext.requesting_user),模型无法覆盖——task_id 标识的待办必须属于该用户本人,
以防越权代他人审批。comment 为可选审批意见。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'approve_approval_task'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否需用户二次确认。默认为 |
True
|
|
bool
|
是否以请求用户身份写入。默认为 |
False
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/approvals.py
| Python | |
|---|---|
482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 | |
cancel_approval_instance
¶
cancel_approval_instance(*, description: str, name: str = 'cancel_approval_instance', locale: str = 'zh-CN', requires_approval: bool = True, as_user: bool = False, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:撤回一个审批实例,返回一个需审批的 feishu.agent.tools.Tool。
requires_approval=True 时,feishu.agent.loop.Agent 先挂起并发审批卡片;用户批准后处理函数才执行写入,
调用 client.approval.instances.cancel(approval_code, instance_code, user_id)。撤回人身份**强制**为当前轮的
请求用户(feishu.agent.context.ToolContext.requesting_user),模型无法覆盖——instance_code 标识的审批
实例必须由该用户本人发起,以防越权代他人撤回。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'cancel_approval_instance'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否需用户二次确认。默认为 |
True
|
|
bool
|
是否以请求用户身份写入。默认为 |
False
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/approvals.py
create_approval_instance
¶
create_approval_instance(*, description: str, name: str = 'create_approval_instance', locale: str = 'zh-CN', requires_approval: bool = True, as_user: bool = False, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:基于 approval_code 与模型构造的 form 创建审批实例,返回一个需审批的 feishu.agent.tools.Tool。
requires_approval=True 时,feishu.agent.loop.Agent 先挂起并发审批卡片;用户批准后处理函数才执行写入。
申请人身份**强制**为当前轮的请求用户(feishu.agent.context.ToolContext.requesting_user),模型无法
覆盖,以防越权代他人提交。form 接受 widget_id -> value 映射、完整控件载荷列表或已序列化的 JSON 串,
由 feishu.approval.approval_instance 归一化为 Feishu 审批实例载荷。
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/approvals.py
| Python | |
|---|---|
191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 | |
get_approval_definition
¶
get_approval_definition(*, description: str, name: str = 'get_approval_definition', locale: str = 'zh-CN', as_user: bool = False, auth_scopes: Sequence[str] = ()) -> Tool
读类工厂:按 approval_code 读取单个审批定义的表单结构,返回一个 feishu.agent.tools.Tool。
返回经 feishu.approval.approval_definition_schema 归一化后的紧凑表单 schema(含 fields
控件列表),供模型据此构造 create_approval_instance 的 form。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'get_approval_definition'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否以请求用户身份读取。默认为 |
False
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/approvals.py
get_approval_status
¶
get_approval_status(*, description: str, name: str = 'get_approval_status', locale: str = 'zh-CN', as_user: bool = False, auth_scopes: Sequence[str] = ()) -> Tool
读类工厂:按 instance_code 读取单个审批实例详情,返回一个 feishu.agent.tools.Tool。
调用 client.approval.instances.get(instance_id),返回的实例含 approval_code、approval_name、
status、form、task_list、comment_list、timeline 等字段,供模型据此向用户概述审批进展,并从
task_list 中识别可供同意 / 拒绝的 task_id。instance_code 与飞书的 instance_id 同义,二者均可。
最小权限(zero-trust):实例读取走租户令牌,可按 id 取到**任意**实例(含收款账户等表单数据),故此处
强制校验「请求用户必须是该实例的参与者」(发起人,或 task_list/timeline 中的审批人 / 处理人,见
feishu.approval.approval_instance_participant_ids);否则返回 BLOCKED——防止被越权操控的智能体凭
实例 id 拉取他人审批与银行账户信息。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'get_approval_status'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否以请求用户身份读取。默认为 |
False
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/approvals.py
list_approval_definitions
¶
list_approval_definitions(*, description: str, name: str = 'list_approval_definitions', locale: str = 'zh-CN', as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
读类工厂:列出当前身份可发起的审批定义,返回一个 feishu.agent.tools.Tool。
飞书按调用身份过滤可发起的审批定义,因此默认以请求用户身份(as_user=True)读取。
每项摘要通常包含 approval_code 与 approval_name,供后续 get_approval_definition
与 create_approval_instance 使用。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'list_approval_definitions'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否以请求用户身份读取。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/approvals.py
list_my_payment_accounts
¶
list_my_payment_accounts(*, description: str, name: str = 'list_my_payment_accounts', locale: str = 'zh-CN') -> Tool
读类工厂:列出请求用户**本人**的收款账户(脱敏标签 + 不可逆句柄),返回一个 feishu.agent.tools.Tool。
飞书无枚举用户绑定收款账户的接口,故从用户本人历史审批实例中恢复(按其 open_id 过滤,绝不触及他人,详见
feishu.agent.payment_accounts.PaymentAccountResolver)。只返回 account_id(句柄)与 label(脱敏,
如「杭州银行 ****8383 (张三)」),**绝不**返回完整卡号。供模型为审批表单的 account 控件挑选账户:恰好一个
直接用、多个问用户选哪个、一个都没有则请用户先在飞书添加;选定后把 {widget_id: account_id} 传入
feishu.agent.toolkit.approvals.create_approval_instance 的 accounts 参数。
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/approvals.py
list_my_pending_approvals
¶
list_my_pending_approvals(*, description: str, name: str = 'list_my_pending_approvals', locale: str = 'zh-CN', as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
读类工厂:列出「请求用户本人」的待办审批任务,返回一个 feishu.agent.tools.Tool。
最小权限(zero-trust):仅查询发起请求的用户本人的待办(topic="1"),用户身份取自
feishu.agent.context.ToolContext.requesting_user,模型无法指向他人。每个任务含 instance_code
与 task_id,可配合 feishu.agent.toolkit.approvals.approve_approval_task /
feishu.agent.toolkit.approvals.reject_approval_task 处理。
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/approvals.py
reject_approval_task
¶
reject_approval_task(*, description: str, name: str = 'reject_approval_task', locale: str = 'zh-CN', requires_approval: bool = True, as_user: bool = False, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:拒绝一个审批任务,返回一个需审批的 feishu.agent.tools.Tool。
requires_approval=True 时,feishu.agent.loop.Agent 先挂起并发审批卡片;用户批准后处理函数才执行写入,
调用 client.approval.tasks.reject(task)。审批人身份**强制**为当前轮的请求用户
(feishu.agent.context.ToolContext.requesting_user),模型无法覆盖——task_id 标识的待办必须属于该用户本人,
以防越权代他人审批。comment 为可选审批意见。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'reject_approval_task'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否需用户二次确认。默认为 |
True
|
|
bool
|
是否以请求用户身份写入。默认为 |
False
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/approvals.py
| Python | |
|---|---|
562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 | |
create_bitable_record
¶
create_bitable_record(*, description: str, name: str = 'create_bitable_record', locale: str = 'zh-CN', requires_approval: bool = True, as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:在指定数据表中新增一条记录,返回一个需审批的 feishu.agent.tools.Tool。
requires_approval=True 时,feishu.agent.loop.Agent 先挂起并发审批卡片;用户批准后处理函数才执行,
直接调用 client.bitable.records.create(app_token, table_id, fields) 完成写入。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'create_bitable_record'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否需要审批后执行。默认为 |
True
|
|
bool
|
是否以请求用户身份写入。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/bitable.py
delete_bitable_record
¶
delete_bitable_record(*, description: str, name: str = 'delete_bitable_record', locale: str = 'zh-CN', requires_approval: bool = True, as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:删除指定数据表中的一条记录,返回一个需审批的 feishu.agent.tools.Tool。
requires_approval=True 时,feishu.agent.loop.Agent 先挂起并发审批卡片;用户批准后处理函数才执行,
直接调用 client.bitable.records.delete(app_token, table_id, record_id) 完成删除。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'delete_bitable_record'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否需要审批后执行。默认为 |
True
|
|
bool
|
是否以请求用户身份写入。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/bitable.py
list_bitable_records
¶
list_bitable_records(*, description: str, name: str = 'list_bitable_records', locale: str = 'zh-CN', as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
读类工厂:列出指定数据表中的记录,返回一个 feishu.agent.tools.Tool。
处理函数调用 client.bitable.records.list(app_token, table_id, view_id=..., filter=..., max_items=100)。
最小权限(zero-trust):max_items 由本工厂硬编码为 100,模型无法放大返回规模。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'list_bitable_records'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否以请求用户身份读取。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/bitable.py
update_bitable_record
¶
update_bitable_record(*, description: str, name: str = 'update_bitable_record', locale: str = 'zh-CN', requires_approval: bool = True, as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:更新指定数据表中的一条记录,返回一个需审批的 feishu.agent.tools.Tool。
requires_approval=True 时,feishu.agent.loop.Agent 先挂起并发审批卡片;用户批准后处理函数才执行,
直接调用 client.bitable.records.update(app_token, table_id, record_id, fields) 完成写入。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'update_bitable_record'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否需要审批后执行。默认为 |
True
|
|
bool
|
是否以请求用户身份写入。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/bitable.py
cancel_calendar_event
¶
cancel_calendar_event(*, description: str, name: str = 'cancel_calendar_event', locale: str = 'zh-CN', requires_approval: bool = True, as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:取消(删除)已有日程,返回一个需审批的 feishu.agent.tools.Tool。
处理函数解析日历(缺省取主日历),再调用 client.calendar.events.delete(calendar_id, event_id)。
requires_approval=True 时由 feishu.agent.loop.Agent 先发审批卡片,用户批准后处理函数才执行删除。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'cancel_calendar_event'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否需用户审批后执行。默认为 |
True
|
|
bool
|
是否以请求用户身份写入。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/calendar.py
create_calendar_event
¶
create_calendar_event(*, description: str, name: str = 'create_calendar_event', locale: str = 'zh-CN', timezone: str = 'Asia/Shanghai', requires_approval: bool = True, as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:创建日程,返回一个需审批的 feishu.agent.tools.Tool。
处理函数解析日历(缺省取主日历),用 feishu.calendar.calendar_event 构造事件体,再调用
client.calendar.events.create(calendar_id, event)。requires_approval=True 时由
feishu.agent.loop.Agent 先发审批卡片,用户批准后才执行。
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/calendar.py
list_calendar_events
¶
list_calendar_events(*, description: str, name: str = 'list_calendar_events', locale: str = 'zh-CN', timezone: str = 'Asia/Shanghai', as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
读类工厂:列出用户日程,返回一个 feishu.agent.tools.Tool。
处理函数解析日历(缺省取主日历),把 ISO 时间经 feishu.calendar.unix_seconds 转为接口所需的秒级
时间戳,再调用 client.calendar.events.list(calendar_id, start_time=..., end_time=...)。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'list_calendar_events'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
str
|
ISO 时间换算所用时区。默认为 |
'Asia/Shanghai'
|
|
bool
|
是否以请求用户身份读取。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/calendar.py
query_calendar_free_busy
¶
query_calendar_free_busy(*, description: str, name: str = 'query_calendar_free_busy', locale: str = 'zh-CN', timezone: str = 'Asia/Shanghai', as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
读类工厂:查询「请求用户本人」的忙闲信息,返回一个 feishu.agent.tools.Tool。
最小权限(zero-trust):本工具只查询发起请求的用户本人,主体身份取自 feishu.agent.context.ToolContext.requesting_user,模型无法指向他人。查询会议室忙闲请改用 feishu.agent.toolkit.rooms.query_meeting_room_free_busy。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'query_calendar_free_busy'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
str
|
时间转换所用时区。默认为 |
'Asia/Shanghai'
|
|
bool
|
是否以请求用户身份读取。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/calendar.py
respond_to_invite
¶
respond_to_invite(*, description: str, name: str = 'respond_to_invite', locale: str = 'zh-CN', requires_approval: bool = True, as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:回复(RSVP)一个日程邀请——接受 / 待定 / 拒绝,返回一个需审批的 feishu.agent.tools.Tool。
处理函数解析日历(缺省取主日历),调用 client.calendar.events.reply(calendar_id, event_id, rsvp_status=...)。
requires_approval=True 时由 feishu.agent.loop.Agent 先发审批卡片,用户批准后才执行;回复的始终是请求
用户本人的日历邀请(按用户身份与主日历解析)。
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/calendar.py
update_calendar_event
¶
update_calendar_event(*, description: str, name: str = 'update_calendar_event', locale: str = 'zh-CN', timezone: str = 'Asia/Shanghai', requires_approval: bool = True, as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:改期 / 编辑已有日程,返回一个需审批的 feishu.agent.tools.Tool。
处理函数解析日历(缺省取主日历),仅依据模型显式传入的字段构造**增量更新体**——未传入的字段保持
不变——再调用 client.calendar.events.update(calendar_id, event_id, event)。时间字段经
feishu.calendar.calendar_time 归一化(与 feishu.calendar.calendar_event 同形),location
以 {"name": ...} 写入。requires_approval=True 时由 feishu.agent.loop.Agent 先发审批卡片,
用户批准后处理函数才执行写入。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'update_calendar_event'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
str
|
ISO 时间换算所用时区。默认为 |
'Asia/Shanghai'
|
|
bool
|
是否需用户审批后执行。默认为 |
True
|
|
bool
|
是否以请求用户身份写入。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/calendar.py
| Python | |
|---|---|
229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 | |
find_user
¶
find_user(*, description: str, name: str = 'find_user', locale: str = 'zh-CN', as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
读类工厂:在请求方所在组织内按关键词搜索用户,返回一个 feishu.agent.tools.Tool。
处理函数调用 client.contact.users.search(query)(仅支持用户态调用,无法搜索组织外或离职用户)。
最小披露(zero-trust):本工具是防「越狱后批量导出组织通讯录」的关键防线,因此——
强制要求 query 非空(拒绝空白查询,避免无差别罗列全员);每条匹配**只**返回
{name, open_id},**绝不**返回邮箱、手机号、部门或完整画像;结果上限收敛至
[feishu.agent.toolkit.contacts._MAX_MATCHES][] 条。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'find_user'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否以请求用户身份读取。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/contacts.py
append_to_document
¶
append_to_document(*, description: str, name: str = 'append_to_document', locale: str = 'zh-CN', requires_approval: bool = True, as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:向 docx 文档末尾追加一个文本段落,返回一个需审批的 feishu.agent.tools.Tool。
仅**追加**(与 feishu.agent.toolkit.content.append_to_sheet 同名同义):处理函数将 text 包装为单个
文本段落块(block_type 为 2),调用 client.docx.append_blocks(document_id, children) 追加到文档根块
末尾,不能修改 / 删除已有内容。requires_approval=True 时由 feishu.agent.loop.Agent 先发审批卡片,
用户批准后处理函数才执行写入。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'append_to_document'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否需用户审批后执行。默认为 |
True
|
|
bool
|
是否以请求用户身份写入。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/content.py
append_to_sheet
¶
append_to_sheet(*, description: str, name: str = 'append_to_sheet', locale: str = 'zh-CN', requires_approval: bool = True, as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:在电子表格指定区域之后追加行数据,返回一个需审批的 feishu.agent.tools.Tool。
处理函数调用 client.sheets.append_rows(spreadsheet_token, range, values);range 形如
<sheetId>!<起始位置>:<结束位置>,values 为二维数组(外层为行、内层为列)。飞书会在 range
所在区域之后自动寻找空行并追加。requires_approval=True 时由 feishu.agent.loop.Agent 先发审批卡片,
用户批准后处理函数才执行写入。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'append_to_sheet'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否需用户审批后执行。默认为 |
True
|
|
bool
|
是否以请求用户身份写入。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/content.py
create_document
¶
create_document(*, description: str, name: str = 'create_document', locale: str = 'zh-CN', requires_approval: bool = True, as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:在云空间中创建一篇空白文档,返回一个需审批的 feishu.agent.tools.Tool。
处理函数调用 client.docx.create(title, folder_token=...);folder_token 为空时创建在用户云空间根目录下。
requires_approval=True 时由 feishu.agent.loop.Agent 先发审批卡片,用户批准后处理函数才执行写入。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'create_document'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否需用户审批后执行。默认为 |
True
|
|
bool
|
是否以请求用户身份写入。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/content.py
delete_document
¶
delete_document(*, description: str, name: str = 'delete_document', locale: str = 'zh-CN', requires_approval: bool = True, as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:将 docx 文档移入回收站,返回一个需审批的 feishu.agent.tools.Tool。
处理函数调用 client.drive.files.delete(document_id, doc_type="docx");删除后文档进入回收站。
requires_approval=True 时由 feishu.agent.loop.Agent 先发审批卡片,用户批准后处理函数才执行删除。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'delete_document'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否需用户审批后执行。默认为 |
True
|
|
bool
|
是否以请求用户身份删除。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/content.py
delete_sheet_rows
¶
delete_sheet_rows(*, description: str, name: str = 'delete_sheet_rows', locale: str = 'zh-CN', requires_approval: bool = True, as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:删除电子表格中指定区间的若干行,返回一个需审批的 feishu.agent.tools.Tool。
处理函数调用 client.sheets.delete_dimension(spreadsheet_token, sheet_id, major_dimension="ROWS",
start_index=..., end_index=...)。start_index 与 end_index 按飞书约定为 1 起始且首尾均包含(删除区间为
[start_index, end_index])。requires_approval=True 时由 feishu.agent.loop.Agent 先发审批卡片,
用户批准后处理函数才执行删除。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'delete_sheet_rows'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否需用户审批后执行。默认为 |
True
|
|
bool
|
是否以请求用户身份删除。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/content.py
list_document_blocks
¶
list_document_blocks(*, description: str, name: str = 'list_document_blocks', locale: str = 'zh-CN', as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
读类工厂:按文档顺序列出 docx 文档的块(block_id / block_type / 文本),返回一个 feishu.agent.tools.Tool。
调用 client.docx.list_blocks(document_id),为每个块提取稳定的 block_id、block_type 与可读文本,供模型
定位要用 feishu.agent.toolkit.content.update_document 改写的具体块。仅返回块的结构与文本,不含其余原始字段。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'list_document_blocks'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否以请求用户身份读取。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/content.py
read_sheet_range
¶
read_sheet_range(*, description: str, name: str = 'read_sheet_range', locale: str = 'zh-CN', as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
读类工厂:读取电子表格单个区域的单元格数据,返回一个 feishu.agent.tools.Tool。
处理函数调用 client.sheets.read_range(spreadsheet_token, range, value_render_option=...);range 形如
<sheetId>!<起始位置>:<结束位置>(例如 Q7PlXT!A1:B2),value_render_option 可选
ToString、Formula、FormattedValue、UnformattedValue,缺省取接口默认。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'read_sheet_range'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否以请求用户身份读取。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/content.py
update_document
¶
update_document(*, description: str, name: str = 'update_document', locale: str = 'zh-CN', requires_approval: bool = True, as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:改写 docx 文档中某个文本块的内容,返回一个需审批的 feishu.agent.tools.Tool。
真正的「更新」(区别于 feishu.agent.toolkit.content.append_to_document 的追加):处理函数以新文本重建该
块的文本元素,调用 client.docx.patch_block(document_id, block_id, {"update_text_elements": ...}) 覆盖指定
块(按 block_id)的全部文本。block_id 由 feishu.agent.toolkit.content.list_document_blocks 获取;仅
适用于文本类块。requires_approval=True 时由 feishu.agent.loop.Agent 先发审批卡片,用户批准后才执行写入。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'update_document'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否需用户审批后执行。默认为 |
True
|
|
bool
|
是否以请求用户身份写入。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/content.py
update_sheet_range
¶
update_sheet_range(*, description: str, name: str = 'update_sheet_range', locale: str = 'zh-CN', requires_approval: bool = True, as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:覆盖电子表格指定区域的单元格数据,返回一个需审批的 feishu.agent.tools.Tool。
处理函数调用 client.sheets.write_range(spreadsheet_token, range, values);range 形如
<sheetId>!<起始位置>:<结束位置>,values 为二维数组(外层为行、内层为列)。该接口直接覆盖 range
区域的现有内容。requires_approval=True 时由 feishu.agent.loop.Agent 先发审批卡片,用户批准后处理函数才执行写入。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'update_sheet_range'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否需用户审批后执行。默认为 |
True
|
|
bool
|
是否以请求用户身份写入。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/content.py
get_document_content
¶
get_document_content(*, description: str, name: str = 'get_document_content', locale: str = 'zh-CN', as_user: bool = True, auth_scopes: Sequence[str] = (), lang: int | None = None) -> Tool
读类工厂:抓取一篇飞书文档的纯文本正文,返回一个 feishu.agent.tools.Tool。
从参数(文档 URL/token/类型)解析出文档引用,经 resolve_document_reference 解析(含 wiki 反查),
再用 client.docx.raw_content 读取 docx 纯文本并原样回传,由模型自行总结。lang 控制文档中
@ 提及等内容的展示语言(0 默认、1 中文、2 英文)。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'get_document_content'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否以请求用户身份读取。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
|
int | None
|
|
None
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/documents.py
get_meeting_record
¶
get_meeting_record(*, description: str, name: str = 'get_meeting_record', locale: str = 'zh-CN', as_user: bool = True, auth_scopes: Sequence[str] = (), timezone: str = 'Asia/Shanghai', lang: int | None = None) -> Tool
读类工厂:解析一场会议并抓取其会议纪要正文,返回一个 feishu.agent.tools.Tool。
优先从参数里直接解析纪要文档引用(URL/token);否则按 meeting_id(client.vc.meetings.get)或
meeting_no + start_time/end_time(client.vc.meetings.list_by_no,时间经 unix_seconds 以
timezone 归一)解析出会议,再从会议对象里取纪要引用。最终以 client.docx.raw_content 读取纪要
docx 纯文本并回传,由模型自行总结。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'get_meeting_record'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否以请求用户身份读取。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
|
str
|
解析 |
'Asia/Shanghai'
|
|
int | None
|
|
None
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/documents.py
| Python | |
|---|---|
237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 | |
get_message_thread
¶
get_message_thread(*, description: str, name: str = 'get_message_thread', locale: str = 'zh-CN', as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
读类工厂:抓取一条消息所在回复链的转录文本,返回一个 feishu.agent.tools.Tool。
以 client.im.list_reply_chain 沿 parent_id 向上抓取消息,按时间正序汇总,再用
message_transcript 渲染为「发送者: 文本」逐行转录并回传,由模型自行总结。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'get_message_thread'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否以请求用户身份读取。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/documents.py
search_documents
¶
search_documents(*, description: str, name: str = 'search_documents', locale: str = 'zh-CN', as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
读类工厂:搜索/列举请求用户可见的文档,返回一个 feishu.agent.tools.Tool。
传入 query 时走知识库全文检索(client.wiki.search);否则列举云空间文件夹下的文件
(client.drive.files.list)。两者均以请求用户身份调用以保持权限边界。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'search_documents'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否以请求用户身份读取。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/documents.py
book_meeting_room
¶
book_meeting_room(*, description: str, name: str = 'book_meeting_room', locale: str = 'zh-CN', requires_approval: bool = True, as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:预订会议室,返回一个需审批的 feishu.agent.tools.Tool。
飞书没有独立的“订会议室”接口:预订会议室通过创建一条日程、再把会议室作为
type=resource 的日程参与人加入完成。requires_approval=True
时,feishu.agent.loop.Agent 先挂起并发审批卡片;用户批准后处理函数才执行写入。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'book_meeting_room'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
执行前是否要求用户审批。默认为 |
True
|
|
bool
|
是否以请求用户身份写入。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/rooms.py
| Python | |
|---|---|
182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 | |
list_meeting_room_buildings
¶
list_meeting_room_buildings(*, description: str, name: str = 'list_meeting_room_buildings', locale: str = 'zh-CN', as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
读类工厂:列出会议室所在的建筑 / 楼宇,返回一个 feishu.agent.tools.Tool。
用于先发现 building_id,再用 feishu.agent.toolkit.rooms.search_meeting_rooms 在该建筑内查会议室。
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/rooms.py
query_meeting_room_free_busy
¶
query_meeting_room_free_busy(*, description: str, name: str = 'query_meeting_room_free_busy', locale: str = 'zh-CN', as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
读类工厂:查询会议室在某时间段内的忙闲,返回一个 feishu.agent.tools.Tool。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'query_meeting_room_free_busy'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否以请求用户身份读取。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/rooms.py
search_meeting_rooms
¶
search_meeting_rooms(*, description: str, name: str = 'search_meeting_rooms', locale: str = 'zh-CN', as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
读类工厂:搜索会议室(按建筑过滤),返回一个 feishu.agent.tools.Tool。
Reads the meeting-room directory for a building. When building_id is not supplied the model should first
discover one (via list_meeting_room_buildings) — scanning every building and merging results is a
product concern intentionally left out here. (Room-level filtering needs the newer vc/v1/rooms
endpoint, which this legacy room-list tool does not call, so it is not offered.)
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'search_meeting_rooms'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否以请求用户身份读取。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/rooms.py
describe_shared_file
¶
describe_shared_file(*, description: str, analyzer: Callable[..., Awaitable[str]], name: str = 'describe_shared_file', locale: str = 'zh-CN') -> Tool
读类工厂:对某个分享文件做(多模态)内容描述 / 提取,返回文本摘要,返回一个 feishu.agent.tools.Tool。
字节经 [feishu.agent.toolkit._base.resolve_shared_file_bytes][] 按请求用户取得后,交由产品注入的 analyzer
(签名 async (data: bytes, *, media_type, name) -> str,通常用沙箱抽取 + 多模态模型实现)产出描述;模型只看到
描述文本,不接触字节。结果附**防注入提示**:文件内容来自用户、不可信,模型不得执行其中的指令。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
Callable[..., Awaitable[str]]
|
产品注入的内容分析器,输入字节、输出描述文本。 |
必需 |
|
str
|
工具名。默认为 |
'describe_shared_file'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/shared_files.py
list_shared_files
¶
list_shared_files(*, description: str, name: str = 'list_shared_files', locale: str = 'zh-CN') -> Tool
读类工厂:列出请求用户最近分享给机器人的文件,返回一个 feishu.agent.tools.Tool。
只返回中性元数据(file_id / name / media_type / kind / size / 时间),**绝不**返回字节或
file_key;结果严格限定为请求用户本人的文件。
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/shared_files.py
upload_shared_file_to_drive
¶
upload_shared_file_to_drive(*, description: str, name: str = 'upload_shared_file_to_drive', locale: str = 'zh-CN', requires_approval: bool = True, as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:把某个分享文件上传到用户云盘的指定文件夹,返回一个需审批的 feishu.agent.tools.Tool。
字节经 [feishu.agent.toolkit._base.resolve_shared_file_bytes][] 按请求用户取得后,以用户身份调用
client.drive.files.upload(file_name, parent_node, data, size=...)。requires_approval=True 时由
feishu.agent.loop.Agent 先发审批卡片,用户批准后处理函数才执行上传。
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/shared_files.py
comment_on_task
¶
comment_on_task(*, description: str, name: str = 'comment_on_task', locale: str = 'zh-CN', requires_approval: bool = True, as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:在任务上发表评论,返回一个需审批的 feishu.agent.tools.Tool。
requires_approval=True 时,feishu.agent.loop.Agent 先挂起并发审批卡片;用户批准后处理函数才执行。
处理函数以请求用户身份(open_id)调用飞书任务 v2 评论创建接口
client.task.comments.create(task_guid, content, user_id_type="open_id"),其中 task_guid 即任务的
guid(作为评论资源的 resource_id,resource_type 取默认值 task)。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'comment_on_task'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否在执行前要求审批。默认为 |
True
|
|
bool
|
是否以请求用户身份写入。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/tasks.py
create_task
¶
create_task(*, description: str, name: str = 'create_task', locale: str = 'zh-CN', requires_approval: bool = True, as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:创建任务,返回一个需审批的 feishu.agent.tools.Tool。
requires_approval=True 时,feishu.agent.loop.Agent 先挂起并发审批卡片;用户批准后处理函数才执行。
处理函数以请求用户身份(open_id)调用飞书任务 v2 创建接口。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'create_task'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否在执行前要求审批。默认为 |
True
|
|
bool
|
是否以请求用户身份写入。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/tasks.py
delete_task
¶
delete_task(*, description: str, name: str = 'delete_task', locale: str = 'zh-CN', requires_approval: bool = True, as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:删除已有任务,返回一个需审批的 feishu.agent.tools.Tool。
处理函数以请求用户身份调用 client.task.tasks.delete(task_guid)。requires_approval=True 时由
feishu.agent.loop.Agent 先发审批卡片,用户批准后处理函数才执行删除。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'delete_task'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否在执行前要求审批。默认为 |
True
|
|
bool
|
是否以请求用户身份写入。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/tasks.py
delete_task_comment
¶
delete_task_comment(*, description: str, name: str = 'delete_task_comment', locale: str = 'zh-CN', requires_approval: bool = True, as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:删除任务评论,返回一个需审批的 feishu.agent.tools.Tool。
处理函数以请求用户身份调用 client.task.comments.delete(comment_id)。requires_approval=True 时由
feishu.agent.loop.Agent 先发审批卡片,用户批准后处理函数才执行删除。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'delete_task_comment'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否在执行前要求审批。默认为 |
True
|
|
bool
|
是否以请求用户身份写入。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/tasks.py
list_my_tasks
¶
list_my_tasks(*, description: str, name: str = 'list_my_tasks', locale: str = 'zh-CN', as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
读类工厂:列出「请求用户本人」负责的任务,返回一个 feishu.agent.tools.Tool。
最小权限(zero-trust):本工具不暴露任何用户 id 入参——client.task.tasks.list 仅支持
user_access_token 调用,天然只返回发起请求的用户本人负责的任务,模型无法指向他人。处理函数以请求用户
身份(open_id)调用 client.task.tasks.list(completed=..., user_id_type="open_id"),completed 缺省时
返回全部任务。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'list_my_tasks'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否以请求用户身份读取。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/tasks.py
list_task_comments
¶
list_task_comments(*, description: str, name: str = 'list_task_comments', locale: str = 'zh-CN', as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
读类工厂:列举某个任务下的评论,返回一个 feishu.agent.tools.Tool。
处理函数以请求用户身份调用 client.task.comments.list(task_guid),其中 task_guid 即任务的 guid
(作为评论资源的 resource_id,resource_type 取默认值 task)。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'list_task_comments'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否以请求用户身份读取。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/tasks.py
update_task
¶
update_task(*, description: str, name: str = 'update_task', locale: str = 'zh-CN', requires_approval: bool = True, as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:增量编辑已有任务,返回一个需审批的 feishu.agent.tools.Tool。
处理函数仅依据模型显式传入的字段构造**增量更新体**——未传入的字段保持不变——把新值收进 task、
把待更新字段名收进 update_fields(与 feishu.agent.toolkit.calendar.update_calendar_event 同形),
再以请求用户身份(open_id)调用 client.task.tasks.patch(task_guid, task, update_fields, user_id_type="open_id")。
requires_approval=True 时由 feishu.agent.loop.Agent 先发审批卡片,用户批准后处理函数才执行写入。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'update_task'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否在执行前要求审批。默认为 |
True
|
|
bool
|
是否以请求用户身份写入。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/tasks.py
update_task_comment
¶
update_task_comment(*, description: str, name: str = 'update_task_comment', locale: str = 'zh-CN', requires_approval: bool = True, as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:编辑任务评论的内容,返回一个需审批的 feishu.agent.tools.Tool。
处理函数以请求用户身份调用 client.task.comments.patch(comment_id, content),用新内容整体替换评论文本。
requires_approval=True 时由 feishu.agent.loop.Agent 先发审批卡片,用户批准后处理函数才执行写入。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'update_task_comment'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否在执行前要求审批。默认为 |
True
|
|
bool
|
是否以请求用户身份写入。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/tasks.py
cancel_reservation
¶
cancel_reservation(*, description: str, name: str = 'cancel_reservation', locale: str = 'zh-CN', requires_approval: bool = True, as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:取消一场已预约的视频会议,返回一个需审批的 feishu.agent.tools.Tool。
处理函数直接调用 client.vc.reserves.delete(reserve_id) 删除预约。requires_approval=True 时由
feishu.agent.loop.Agent 先发审批卡片,用户批准后处理函数才执行取消。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'cancel_reservation'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否需用户审批后执行。默认为 |
True
|
|
bool
|
是否以请求用户身份取消。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/vc.py
reserve_meeting
¶
reserve_meeting(*, description: str, name: str = 'reserve_meeting', locale: str = 'zh-CN', timezone: str = 'Asia/Shanghai', requires_approval: bool = True, as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:预约一场视频会议,返回一个需审批的 feishu.agent.tools.Tool。
处理函数把会议主题写入 meeting_settings,将 ISO 到期时间经 feishu.calendar.unix_seconds 转为接口所需的
秒级时间戳字符串,再调用 client.vc.reserves.apply(meeting_settings, end_time=..., owner_id=..., user_id_type="open_id")。
预约成功后返回会议号与入会链接。requires_approval=True 时由 feishu.agent.loop.Agent 先发审批卡片,用户批准后
处理函数才执行预约。
最小权限(zero-trust):预约人始终是发起请求的用户本人,owner_id 取自
feishu.agent.context.ToolContext.requesting_user(open_id),模型无法指向他人。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'reserve_meeting'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
str
|
ISO 时间换算所用时区。默认为 |
'Asia/Shanghai'
|
|
bool
|
是否需用户审批后执行。默认为 |
True
|
|
bool
|
是否以请求用户身份预约。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/vc.py
update_reservation
¶
update_reservation(*, description: str, name: str = 'update_reservation', locale: str = 'zh-CN', timezone: str = 'Asia/Shanghai', requires_approval: bool = True, as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
写类工厂:更新一场已预约的视频会议,返回一个需审批的 feishu.agent.tools.Tool。
处理函数仅把显式传入的字段写入请求:给出 end_time 时经 feishu.calendar.unix_seconds 转为接口所需的秒级
时间戳字符串;给出 topic 时写入 meeting_settings;并始终以 user_id_type="open_id" 调用
client.vc.reserves.update(reserve_id, **kwargs)。requires_approval=True 时由 feishu.agent.loop.Agent
先发审批卡片,用户批准后处理函数才执行更新。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'update_reservation'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
str
|
ISO 时间换算所用时区。默认为 |
'Asia/Shanghai'
|
|
bool
|
是否需用户审批后执行。默认为 |
True
|
|
bool
|
是否以请求用户身份更新。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
示例:
| Python Console Session | |
|---|---|
源代码位于: feishu/agent/toolkit/vc.py
list_whiteboard_nodes
¶
list_whiteboard_nodes(*, description: str, name: str = 'list_whiteboard_nodes', locale: str = 'zh-CN', as_user: bool = True, auth_scopes: Sequence[str] = ()) -> Tool
读类工厂:一次性列出某画板内的全部节点,返回一个 feishu.agent.tools.Tool。
处理函数调用 client.board.list_nodes(whiteboard_id, user_id_type="open_id")(该接口不分页),
节点以 id、type、parent_id、children 及对应类型的内容字段描述。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
|
str
|
工具描述(产品本地化文案)。 |
必需 |
|
str
|
工具名。默认为 |
'list_whiteboard_nodes'
|
|
str
|
本地化标识。默认为 |
'zh-CN'
|
|
bool
|
是否以请求用户身份读取。默认为 |
True
|
|
Sequence[str]
|
缺少授权时申请的飞书权限范围。 |
()
|
返回:
| 类型 | 描述 |
|---|---|
Tool
|
示例:
| Python Console Session | |
|---|---|